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):
pass
result = []
for i in range(len(lista)):
if i % 2 == 0:
result.append(lista[i])
return result
def tests(f):
inputs = [[[1, 2, 3, 4, 5, 6]], [[]], [[41]]]

View File

@ -6,7 +6,16 @@
"""
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):
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):
pass
return (set(text.lower().split()) - set(vocab))
def tests(f):
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):
pass
if n < 1:
return 0
else:
return sum(i for i in range(1, n+1))
def tests(f):

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import math as m
"""
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):
pass
return m.sqrt(sum((i-j)**2 for i, j in zip(x, y)))
def tests(f):
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):
pass
if n < 5:
return "It's not a Big \'No!\'"
else:
return "N" + n * "O" + "!"
def tests(f):
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.
"""
def char_sum(text):
pass
return sum(ord(x) for x in text)
def tests(f):
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):
pass
return sum(x for x in range(n) if (x % 3 == 0 or x % 5 == 0))
def tests(f):
inputs = [[10], [100], [3845]]

View File

@ -9,8 +9,11 @@ Np. leet('leet') powinno zwrócić '1337'.
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):
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):
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):
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):
pass
return sorted(set(string1.replace(' ', '')) & set(string2.replace(' ', '')))
def tests(f):
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.
"""
return 0
return a + b
def tests(f):
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
# -*- coding: utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
def wczytaj_dane():
pass
return pd.read_csv('mieszkania.csv')
def most_common_room_number(dane):
pass
return dane.Rooms.value_counts().index[0]
def cheapest_flats(dane, n):
pass
return dane.sort_values(by=['Expected'], ascending=False).head(n)
def find_borough(desc):
dzielnice = ['Stare Miasto',
@ -19,23 +26,44 @@ def find_borough(desc):
'Winogrady',
'Miłostowo',
'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):
pass
dane['Borough'] = dane.Location.apply(lambda el: find_borough(str(el)))
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):
pass
return dane.Expected[dane.Rooms == room_number].mean()
def find_13(dane):
pass
return dane.Borough[dane.Floor == 13].unique()
def find_best_flats(dane):
pass
return dane[(dane.Borough == 'Winogrady') & (dane.Rooms == 3) & (dane.Floor == 1)]
def main():
dane = wczytaj_dane()
@ -44,11 +72,22 @@ def main():
print("Najpopularniejsza liczba pokoi w mieszkaniu to: {}"
.format(most_common_room_number(dane)))
print("{} to najłądniejsza dzielnica w Poznaniu."
.format(find_borough("Grunwald i Jeżyce"))))
print("{} to najładniejsza dzielnica w Poznaniu."
.format(find_borough("Grunwald i Jeżyce")))
print("Średnia cena mieszkania 3-pokojowego, to: {}"
.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__":
main()

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

@ -4,77 +4,82 @@
"""
1. Zaimportuj bibliotkę pandas jako pd.
"""
import pandas as pd
"""
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.
"""
print(data.head())
"""
4. Wyświetl nazwy kolumn.
"""
print(data.columns.values)
"""
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.
"""
print(data.City)
"""
7. Wyświetl jakie wartoścu przyjmuje kolumna 'City'.
"""
print(data.City.unique())
"""
8. Wyświetl tabelę rozstawną kolumny City.
"""
print(data.City.value_counts())
"""
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.
"""
print(len(data[data.City.isnull()]))
"""
11. Wyświetl data.info()
"""
print(data.info())
"""
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
NYPD. Zlicz ile jest takich przykładów.
"""
print(data[data.Agency == 'NYPD'])
"""
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.
"""
data['diff'] = data.Longitude + data.Latitude
"""
16. Wyświetl tablę rozstawną dla kolumny 'Descriptor', dla której Agency jest
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