1
0
forked from tdwojak/Python2018

Compare commits

..

No commits in common. "master" and "master" have entirely different histories.

16 changed files with 42 additions and 123 deletions

View File

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

View File

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

View File

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

View File

@ -7,10 +7,7 @@ Jeśli podany argument jest mniejszy od 1 powinna być zwracana wartość 0.
"""
def sum_from_one_to_n(n):
if n < 1:
return 0
else:
return sum(i for i in range(1, n+1))
pass
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):
return m.sqrt(sum((i-j)**2 for i, j in zip(x, y)))
pass
def tests(f):
inputs = [[(2.3, 4.3, -7.5), (2.3, 8.5, -7.5)]]

View File

@ -10,10 +10,7 @@ ma być zwracany napis "It's not a Big 'No!'".
"""
def big_no(n):
if n < 5:
return "It's not a Big \'No!\'"
else:
return "N" + n * "O" + "!"
pass
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):
return sum(ord(x) for x in text)
pass
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):
return sum(x for x in range(n) if (x % 3 == 0 or x % 5 == 0))
pass
def tests(f):
inputs = [[10], [100], [3845]]

View File

@ -9,11 +9,8 @@ Np. leet('leet') powinno zwrócić '1337'.
def leet_speak(text):
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
pass
def tests(f):
inputs = [['leet'], ['do not want']]

View File

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

View File

@ -9,7 +9,8 @@ Oba napisy będą składać się wyłacznie z małych liter.
"""
def common_chars(string1, string2):
return sorted(set(string1.replace(' ', '')) & set(string2.replace(' ', '')))
pass
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 a + b
return 0
def tests(f):
inputs = [(2, 3), (0, 0), (1, 1)]

View File

@ -1,14 +0,0 @@
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 Normal file → Executable file
View File

@ -1,21 +1,14 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
def wczytaj_dane():
return pd.read_csv('mieszkania.csv')
pass
def most_common_room_number(dane):
return dane.Rooms.value_counts().index[0]
pass
def cheapest_flats(dane, n):
return dane.sort_values(by=['Expected'], ascending=False).head(n)
pass
def find_borough(desc):
dzielnice = ['Stare Miasto',
@ -26,44 +19,23 @@ def find_borough(desc):
'Winogrady',
'Miłostowo',
'Dębiec']
common_boroughs = list(set(desc.split()).intersection(dzielnice))
if not common_boroughs:
return "Inne"
else:
return str(common_boroughs[0])
pass
def add_borough(dane):
dane['Borough'] = dane.Location.apply(lambda el: find_borough(str(el)))
pass
def write_plot(dane, filename):
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)
pass
def mean_price(dane, room_number):
return dane.Expected[dane.Rooms == room_number].mean()
pass
def find_13(dane):
return dane.Borough[dane.Floor == 13].unique()
pass
def find_best_flats(dane):
return dane[(dane.Borough == 'Winogrady') & (dane.Rooms == 3) & (dane.Floor == 1)]
pass
def main():
dane = wczytaj_dane()
@ -72,22 +44,11 @@ def main():
print("Najpopularniejsza liczba pokoi w mieszkaniu to: {}"
.format(most_common_room_number(dane)))
print("{} to najładniejsza dzielnica w Poznaniu."
.format(find_borough("Grunwald i Jeżyce")))
print("{} to najłądniejsza 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 Normal file → Executable file
View File

@ -4,82 +4,77 @@
"""
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())

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB