diff --git a/labs04/task02.py b/labs04/task02.py new file mode 100644 index 0000000..d70da1b --- /dev/null +++ b/labs04/task02.py @@ -0,0 +1,20 @@ +""" +**ćwiczenie 2** +Napisz generator, który będzie zwracać ``n`` kolejnych liczb ciągu Fibonacciego (``F(0)=1, F(1)=1, FN=F(N-1) + F(N-2)``). +""" + +import itertools as it + +n = int(input('Number of occursion: ')) + +def fibo(): + a, b = 0, 1 + while 1: + yield a + b = a + b + yield b + a = a+b +gen = fibo() + +for i in it.islice(fibo(), n): + print(i) \ No newline at end of file diff --git a/labs04/task05.py b/labs04/task05.py new file mode 100644 index 0000000..9b46df9 --- /dev/null +++ b/labs04/task05.py @@ -0,0 +1,20 @@ +""" +**ćwiczenie 5** +Katalog scores zawiera 64 pliki tekstowe, które posiadają informacje o wysokości miary ``BLEU`` na różnych etapach trenowania modelu. Nazwa każdego pliku na postać ``model.iterXXXXXXX.npz.bleu``, gdzie ``XXXXXXX``, to liczba iteracji.Zawartość każdego pliku jest podobna i ma następującą formę: *BLEU = YY.YY, 44.4/18.5/9.3/5.0 (BP=1.000, ratio=1.072, hyp_len=45976, ref_len=42903)*, gdzie ``YY.YY`` to wartość miary ``BLEU``. Znajdź plik, który zawiera najwyższą wartość miary ``BLEU``. + * Wykorzystaj bibliotekę ``glob`` (https://docs.python.org/2/library/glob.html) + * Wyświetl tylko pełną nazwe pliku (wraz z ścieżką). +""" + +import pandas as pd +import glob + +path = r'/home/ghermann/code/python_td/labs04/scores' #change for your system +files = glob.glob(path + '/*.npz.bleu') + +dfs = [pd.read_csv(fp, sep = " ", header = None).assign(filepath = fp) for fp in files] +df = pd.concat(dfs, ignore_index = True) + +df[2] = df[2].map(lambda c: c.rstrip(',')) +df[2] = pd.to_numeric(df[2], errors = 'coerce') + +print(df.at[df[2].idxmax(), 'filepath'])