Compare commits

...

8 Commits

Author SHA1 Message Date
Jakub Wajs
95f6c11a79 task02 ready (without extra task 10) 2018-06-03 12:40:42 +02:00
Jakub Wajs
aee299ad3b Merge branch 'master' of https://git.wmi.amu.edu.pl/tdwojak/Python2018 2018-06-03 10:45:19 +02:00
Jakub Wajs
6055aefbfa Labs06 tasks ready 2018-06-03 10:43:16 +02:00
Jakub Wajs
59e4875b80 Merge branch 'master' of https://git.wmi.amu.edu.pl/tdwojak/Python2018 2018-06-03 10:02:05 +02:00
Jakub Wajs
36ebe87bd1 Merge https://git.wmi.amu.edu.pl/tdwojak/Python2018 2018-06-03 08:23:54 +02:00
Kuba
076f5e462b Task 05 lab04 ready 2018-06-01 21:56:38 +02:00
Kuba
d0595e3128 labs02 ready 2018-05-14 23:01:58 +02:00
Kuba
a5f73d423a labs02 first part of tasks 2018-05-14 22:30:09 +02:00
16 changed files with 123 additions and 42 deletions

View File

@ -7,8 +7,11 @@ która zawiera tylko elementy z list o parzystych indeksach.
""" """
def even_elements(lista): def even_elements(lista):
pass result = []
for i in range(len(lista)):
if i % 2 == 0:
result.append(lista[i])
return result
def tests(f): def tests(f):
inputs = [[[1, 2, 3, 4, 5, 6]], [[]], [[41]]] inputs = [[[1, 2, 3, 4, 5, 6]], [[]], [[41]]]

View File

@ -6,7 +6,16 @@
""" """
def days_in_year(days): def days_in_year(days):
pass if days % 4 == 0:
if days % 100 == 0:
if days % 400 == 0:
return 366
else:
return 365
else:
return 366
else:
return 365
def tests(f): def tests(f):
inputs = [[2015], [2012], [1900], [2400], [1977]] inputs = [[2015], [2012], [1900], [2400], [1977]]

View File

@ -13,9 +13,7 @@ jak 'set', która przechowuje elementy bez powtórzeń.)
def oov(text, vocab): def oov(text, vocab):
pass return (set(text.lower().split()) - set(vocab))
def tests(f): def tests(f):
inputs = [("this is a string , which i will use for string testing", inputs = [("this is a string , which i will use for string testing",

View File

@ -7,7 +7,10 @@ Jeśli podany argument jest mniejszy od 1 powinna być zwracana wartość 0.
""" """
def sum_from_one_to_n(n): def sum_from_one_to_n(n):
pass if n < 1:
return 0
else:
return sum(i for i in range(1, n+1))
def tests(f): def tests(f):

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import math as m
""" """
Napisz funkcję euclidean_distance obliczającą odległość między Napisz funkcję euclidean_distance obliczającą odległość między
@ -10,7 +10,7 @@ np. odległość pomiędzy punktami (0, 0, 0) i (3, 4, 0) jest równa 5.
""" """
def euclidean_distance(x, y): def euclidean_distance(x, y):
pass return m.sqrt(sum((i-j)**2 for i, j in zip(x, y)))
def tests(f): def tests(f):
inputs = [[(2.3, 4.3, -7.5), (2.3, 8.5, -7.5)]] inputs = [[(2.3, 4.3, -7.5), (2.3, 8.5, -7.5)]]

View File

@ -10,7 +10,10 @@ ma być zwracany napis "It's not a Big 'No!'".
""" """
def big_no(n): def big_no(n):
pass if n < 5:
return "It's not a Big \'No!\'"
else:
return "N" + n * "O" + "!"
def tests(f): def tests(f):
inputs = [[5], [6], [2]] inputs = [[5], [6], [2]]

View File

@ -6,7 +6,7 @@ Napisz funkcję char_sum, która dla zadanego łańcucha zwraca
sumę kodów ASCII znaków. sumę kodów ASCII znaków.
""" """
def char_sum(text): def char_sum(text):
pass return sum(ord(x) for x in text)
def tests(f): def tests(f):
inputs = [["this is a string"], ["this is another string"]] inputs = [["this is a string"], ["this is another string"]]

View File

@ -7,7 +7,7 @@ przez 3 lub 5 mniejszych niż n.
""" """
def sum_div35(n): def sum_div35(n):
pass return sum(x for x in range(n) if (x % 3 == 0 or x % 5 == 0))
def tests(f): def tests(f):
inputs = [[10], [100], [3845]] inputs = [[10], [100], [3845]]

View File

@ -9,8 +9,11 @@ Np. leet('leet') powinno zwrócić '1337'.
def leet_speak(text): def leet_speak(text):
pass words_dict = { 'e': '3', 'l': '1', 'o': '0', 't': '7' }
for letter in text:
if letter in words_dict:
text = text.replace(letter, words_dict[letter])
return text
def tests(f): def tests(f):
inputs = [['leet'], ['do not want']] inputs = [['leet'], ['do not want']]

View File

@ -9,8 +9,13 @@ na wielką. Np. pokemon_speak('pokemon') powinno zwrócić 'PoKeMoN'.
def pokemon_speak(text): def pokemon_speak(text):
pass result = []
for i in range(len(text)):
if i % 2 == 0:
result.append(text[i].upper())
else:
result.append(text[i])
return ''.join(result)
def tests(f): def tests(f):
inputs = [['pokemon'], ['do not want'], ['POKEMON']] inputs = [['pokemon'], ['do not want'], ['POKEMON']]

View File

@ -9,8 +9,7 @@ Oba napisy będą składać się wyłacznie z małych liter.
""" """
def common_chars(string1, string2): def common_chars(string1, string2):
pass return sorted(set(string1.replace(' ', '')) & set(string2.replace(' ', '')))
def tests(f): def tests(f):
inputs = [["this is a string", "ala ma kota"]] inputs = [["this is a string", "ala ma kota"]]

View File

@ -6,7 +6,7 @@ def suma(a, b):
""" """
Napisz funkcję, która zwraca sumę elementów. Napisz funkcję, która zwraca sumę elementów.
""" """
return 0 return a + b
def tests(f): def tests(f):
inputs = [(2, 3), (0, 0), (1, 1)] inputs = [(2, 3), (0, 0), (1, 1)]

14
labs04/task05.py Normal file
View File

@ -0,0 +1,14 @@
import glob
import os
scores_files = glob.glob('./scores/model.iter*[0-9].npz.bleu')
max_result = { 'path': '', 'score': 0.0 }
for f in scores_files:
read_file = open(f, 'r').read().split()
result = float(read_file[2][:-1])
if(result > max_result['score']):
max_result['score'] = result
max_result['path'] = f
print(os.path.abspath(max_result['path']))

61
labs06/task02.py Executable file → Normal file
View File

@ -1,14 +1,21 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
def wczytaj_dane(): def wczytaj_dane():
pass return pd.read_csv('mieszkania.csv')
def most_common_room_number(dane): def most_common_room_number(dane):
pass return dane.Rooms.value_counts().index[0]
def cheapest_flats(dane, n): def cheapest_flats(dane, n):
pass return dane.sort_values(by=['Expected'], ascending=False).head(n)
def find_borough(desc): def find_borough(desc):
dzielnice = ['Stare Miasto', dzielnice = ['Stare Miasto',
@ -19,23 +26,44 @@ def find_borough(desc):
'Winogrady', 'Winogrady',
'Miłostowo', 'Miłostowo',
'Dębiec'] 'Dębiec']
pass
common_boroughs = list(set(desc.split()).intersection(dzielnice))
if not common_boroughs:
return "Inne"
else:
return str(common_boroughs[0])
def add_borough(dane): def add_borough(dane):
pass dane['Borough'] = dane.Location.apply(lambda el: find_borough(str(el)))
def write_plot(dane, filename): def write_plot(dane, filename):
pass column_names = list(dane.Borough.value_counts().index)
x_pos = np.arange(len(column_names))
y_pos = list(dane.Borough.value_counts())
plt.bar(x_pos, y_pos, align='center')
plt.xticks(x_pos, column_names)
plt.xlabel('Dzielnica')
plt.ylabel('Liczba ogłoszeń')
plt.title('Liczba ogłoszeń mieszkaniowych z podziałem na dzielnice')
img = plt.gcf()
img.savefig(filename)
def mean_price(dane, room_number): def mean_price(dane, room_number):
pass return dane.Expected[dane.Rooms == room_number].mean()
def find_13(dane): def find_13(dane):
pass return dane.Borough[dane.Floor == 13].unique()
def find_best_flats(dane): def find_best_flats(dane):
pass return dane[(dane.Borough == 'Winogrady') & (dane.Rooms == 3) & (dane.Floor == 1)]
def main(): def main():
dane = wczytaj_dane() dane = wczytaj_dane()
@ -44,11 +72,22 @@ def main():
print("Najpopularniejsza liczba pokoi w mieszkaniu to: {}" print("Najpopularniejsza liczba pokoi w mieszkaniu to: {}"
.format(most_common_room_number(dane))) .format(most_common_room_number(dane)))
print("{} to najłądniejsza dzielnica w Poznaniu." print("{} to najładniejsza dzielnica w Poznaniu."
.format(find_borough("Grunwald i Jeżyce")))) .format(find_borough("Grunwald i Jeżyce")))
print("Średnia cena mieszkania 3-pokojowego, to: {}" print("Średnia cena mieszkania 3-pokojowego, to: {}"
.format(mean_price(dane, 3))) .format(mean_price(dane, 3)))
add_borough(dane)
print("Lista dzielnic, które zawierają ofertę mieszkania na 13 piętrze: {}"
.format(', '.join(find_13(dane))))
write_plot(dane, "test")
# print("Oferty mieszkań, które znajdują się na Winogradach, mają 3 pokoje i są na 1 piętrze:")
# print(find_best_flats(dane))
if __name__ == "__main__": if __name__ == "__main__":
main() main()

29
labs06/tasks.py Executable file → Normal file
View File

@ -4,77 +4,82 @@
""" """
1. Zaimportuj bibliotkę pandas jako pd. 1. Zaimportuj bibliotkę pandas jako pd.
""" """
import pandas as pd
""" """
2. Wczytaj zbiór danych `311.csv` do zniennej data. 2. Wczytaj zbiór danych `311.csv` do zniennej data.
""" """
data = pd.read_csv('311.csv', low_memory=False)
""" """
3. Wyświetl 5 pierwszych wierszy z data. 3. Wyświetl 5 pierwszych wierszy z data.
""" """
print(data.head())
""" """
4. Wyświetl nazwy kolumn. 4. Wyświetl nazwy kolumn.
""" """
print(data.columns.values)
""" """
5. Wyświetl ile nasz zbiór danych ma kolumn i wierszy. 5. Wyświetl ile nasz zbiór danych ma kolumn i wierszy.
""" """
print('Rows: ' + str(data.shape[0]) + '\nColumns: ' + str(data.shape[1]))
""" """
6. Wyświetl kolumnę 'City' z powyższego zbioru danych. 6. Wyświetl kolumnę 'City' z powyższego zbioru danych.
""" """
print(data.City)
""" """
7. Wyświetl jakie wartoścu przyjmuje kolumna 'City'. 7. Wyświetl jakie wartoścu przyjmuje kolumna 'City'.
""" """
print(data.City.unique())
""" """
8. Wyświetl tabelę rozstawną kolumny City. 8. Wyświetl tabelę rozstawną kolumny City.
""" """
print(data.City.value_counts())
""" """
9. Wyświetl tylko pierwsze 4 wiersze z wcześniejszego polecenia. 9. Wyświetl tylko pierwsze 4 wiersze z wcześniejszego polecenia.
""" """
print(data.City.value_counts().head(4))
""" """
10. Wyświetl, w ilu przypadkach kolumna City zawiera NaN. 10. Wyświetl, w ilu przypadkach kolumna City zawiera NaN.
""" """
print(len(data[data.City.isnull()]))
""" """
11. Wyświetl data.info() 11. Wyświetl data.info()
""" """
print(data.info())
""" """
12. Wyświetl tylko kolumny Borough i Agency i tylko 5 ostatnich linii. 12. Wyświetl tylko kolumny Borough i Agency i tylko 5 ostatnich linii.
""" """
print(data[['Borough', 'Agency']].tail())
""" """
13. Wyświetl tylko te dane, dla których wartość z kolumny Agency jest równa 13. Wyświetl tylko te dane, dla których wartość z kolumny Agency jest równa
NYPD. Zlicz ile jest takich przykładów. NYPD. Zlicz ile jest takich przykładów.
""" """
print(data[data.Agency == 'NYPD'])
""" """
14. Wyświetl wartość minimalną i maksymalną z kolumny Longitude. 14. Wyświetl wartość minimalną i maksymalną z kolumny Longitude.
""" """
print('Min: ' + str(data.Longitude.min()))
print('Max: ' + str(data.Longitude.max()))
""" """
15. Dodaj kolumne diff, która powstanie przez sumowanie kolumn Longitude i Latitude. 15. Dodaj kolumne diff, która powstanie przez sumowanie kolumn Longitude i Latitude.
""" """
data['diff'] = data.Longitude + data.Latitude
""" """
16. Wyświetl tablę rozstawną dla kolumny 'Descriptor', dla której Agency jest 16. Wyświetl tablę rozstawną dla kolumny 'Descriptor', dla której Agency jest
równe NYPD. równe NYPD.
""" """
print(data.Descriptor[data.Agency == 'NYPD'].value_counts())

BIN
labs06/test.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB