Compare commits

...

11 Commits

Author SHA1 Message Date
Mikaszaaa
f80725fa37 Rozwiazanie zadanie 2018-06-22 23:47:50 +02:00
Mikaszaaa
164d110319 Rozwiazanie zadania z labs06 2018-06-22 23:03:55 +02:00
Mikaszaaa
edcc7fa76d Merge branch 'master' of https://git.wmi.amu.edu.pl/tdwojak/Python2018 2018-06-03 14:30:49 +02:00
Mikaszaaa
29c7780e68 Rozwiazanie zadania 5 z labs04 2018-05-30 18:58:15 +02:00
Mikaszaaa
3fc2e3d36f zadanie 10-11 2018-05-30 11:37:18 +02:00
Mikaszaaa
e225ee691a zadanie 9 2018-05-30 10:56:59 +02:00
s434579
d032993997 rozwiazanie zadania od 7 do 8 2018-05-13 12:54:36 +02:00
s434579
2e4c0027c8 rozwiazanie zadania od 1 do 6 2018-05-13 12:36:24 +02:00
s434579
2181b3d4d3 rozwiazanie zadania intro task 2018-05-13 09:22:27 +02:00
s434579
66fa742918 rozwiazanie zadania test 2018-05-13 09:21:25 +02:00
s434579
44cf003175 rozwiazanie zadania test 2018-05-13 08:46:11 +02:00
16 changed files with 233 additions and 47 deletions

View File

@ -9,48 +9,66 @@ Zadania wprowadzające do pierwszych ćwiczeń.
""" """
Wypisz na ekran swoje imię i nazwisko. Wypisz na ekran swoje imię i nazwisko.
""" """
print('Monika Kraszkiewicz')
""" """
Oblicz i wypisz na ekran pole koła o promienie 10. Jako PI przyjmij 3.14. Oblicz i wypisz na ekran pole koła o promienie 10. Jako PI przyjmij 3.14.
""" """
pi = 3.14
pole = pi * (10**2)
print('Pole koła', pole)
""" """
Stwórz zmienną pole_kwadratu i przypisz do liczbę: pole kwadratu o boku 3. Stwórz zmienną pole_kwadratu i przypisz do liczbę: pole kwadratu o boku 3.
""" """
pole_kwadratu = 3**2
""" """
Stwórz 3 elementową listę, która zawiera nazwy 3 Twoich ulubionych owoców. Stwórz 3 elementową listę, która zawiera nazwy 3 Twoich ulubionych owoców.
Wynik przypisz do zmiennej `owoce`. Wynik przypisz do zmiennej `owoce`.
""" """
owoce = ['banan', 'truskawka', 'pomarańcza']
""" """
Dodaj do powyższej listy jako nowy element "pomidor". Dodaj do powyższej listy jako nowy element "pomidor".
""" """
owoce.append('pomidor')
#print(owoce)
""" """
Usuń z powyższej listy drugi element. Usuń z powyższej listy drugi element.
""" """
owoce.pop(1)
#print(owoce)
""" """
Rozszerz listę o tablice ['Jabłko', "Gruszka"]. Rozszerz listę o tablice ['Jabłko', "Gruszka"].
""" """
owoce.extend(['Jabłko', 'Gruszka'])
print(owoce)
""" """
Wyświetl listę owoce, ale bez pierwszego i ostatniego elementu. Wyświetl listę owoce, ale bez pierwszego i ostatniego elementu.
""" """
print(owoce[1:-1])
""" """
Wyświetl co trzeci element z listy owoce. Wyświetl co trzeci element z listy owoce.
""" """
print(owoce[::3])
""" """
Stwórz pusty słownik i przypisz go do zmiennej magazyn. Stwórz pusty słownik i przypisz go do zmiennej magazyn.
""" """
magazyn = {}
""" """
Dodaj do słownika magazyn owoce z listy owoce, tak, aby owoce były kluczami, Dodaj do słownika magazyn owoce z listy owoce, tak, aby owoce były kluczami,
zaś wartościami były równe 5. zaś wartościami były równe 5.
""" """
for i in owoce:
magazyn[i] = 5
print(magazyn)

View File

@ -7,8 +7,8 @@ która zawiera tylko elementy z list o parzystych indeksach.
""" """
def even_elements(lista): def even_elements(lista):
pass nowa = lista[::2]
return nowa
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,11 @@
""" """
def days_in_year(days): def days_in_year(days):
pass if (days % 4 == 0 and days % 100 != 0) or days % 400 == 0:
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,8 +13,14 @@ jak 'set', która przechowuje elementy bez powtórzeń.)
def oov(text, vocab): def oov(text, vocab):
pass slowa = text.split(' ')
#print('slowa',slowa)
nowe = set(slowa)
#print('nowe',nowe)
for i in vocab:
nowe.remove(i)
#print("cos",nowe)
return nowe
def tests(f): def tests(f):

View File

@ -7,7 +7,16 @@ 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 suma = 1
i = 1
if n < 1:
return 0
else:
while i < n:
i += 1
suma += i
return suma
def tests(f): def tests(f):

View File

@ -8,9 +8,10 @@ dwoma punktami przestrzeni trójwymiarowej. Punkty są dane jako
trzyelementowe listy liczb zmiennoprzecinkowych. trzyelementowe listy liczb zmiennoprzecinkowych.
np. odległość pomiędzy punktami (0, 0, 0) i (3, 4, 0) jest równa 5. np. odległość pomiędzy punktami (0, 0, 0) i (3, 4, 0) jest równa 5.
""" """
import math
def euclidean_distance(x, y): def euclidean_distance(x, y):
pass d = math.sqrt((x[0] - y[0])**2 +(x[1] - y[1])**2 + (x[2] - y[2])**2)
return d
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,12 @@ ma być zwracany napis "It's not a Big 'No!'".
""" """
def big_no(n): def big_no(n):
pass if n < 5:
y = ("It's not a Big 'No!'")
return y
else:
u = 'N' + 'O' * n + "!"
return u
def tests(f): def tests(f):
inputs = [[5], [6], [2]] inputs = [[5], [6], [2]]

View File

@ -6,7 +6,12 @@ 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 suma = 0
for i in text:
suma += ord(i)
return suma
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,11 @@ przez 3 lub 5 mniejszych niż n.
""" """
def sum_div35(n): def sum_div35(n):
pass suma = 0
for i in range(n):
if i % 3 == 0 or i % 5 == 0:
suma += i
return suma
def tests(f): def tests(f):
inputs = [[10], [100], [3845]] inputs = [[10], [100], [3845]]

View File

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

View File

@ -9,7 +9,14 @@ na wielką. Np. pokemon_speak('pokemon') powinno zwrócić 'PoKeMoN'.
def pokemon_speak(text): def pokemon_speak(text):
pass lista = []
for i in range(len(text)):
if i % 2 == 0:
lista.append(text[i].upper())
else:
lista.append(text[i])
text = "".join(lista)
return text
def tests(f): def tests(f):

View File

@ -9,7 +9,19 @@ Oba napisy będą składać się wyłacznie z małych liter.
""" """
def common_chars(string1, string2): def common_chars(string1, string2):
pass lista = []
result = []
for i in range(len(string1)):
lista.append(string1[i])
for j in range(len(string2)):
if string2[j] in lista:
result.append(string2[j])
nowa = list(set(result))
for i in nowa:
if ord(i) == 32:
nowa.remove(i)
nowa.sort()
return nowa
def tests(f): def tests(f):

6
labs02/test_task.py Executable file → Normal file
View File

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

27
labs04/Rozwiazanie 5.py Normal file
View File

@ -0,0 +1,27 @@
import glob
slownik = {}
for file in glob.glob("scores/*.npz.bleu"):
plik = open(file,"r")
plik.seek(7)
odczyt = plik.read(5)
for i in odczyt:
if ord(i) == 44:
slownik[file] = "0" + odczyt[:-2] + "0"
else:
slownik[file] = odczyt
plik.close()
#print(slownik)
wartosci = list(slownik.viewvalues())
#print wartosci
wartosci = max(wartosci)
#print wartosci
for l in slownik:
if slownik[l] == wartosci:
print l

View File

@ -1,14 +1,25 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import pandas as pd
from matplotlib import pyplot as plt
import sklearn as skl
from sklearn.linear_model import LinearRegression
import numpy as np
from sklearn.metrics import mean_squared_error
def wczytaj_dane(): def wczytaj_dane():
pass r = pd.read_csv("mieszkania.csv")
dane = pd.DataFrame(r, columns = ['Id', 'Expected', 'Rooms', 'SqrMeters', 'Floor', 'Location', 'Description'])
return dane
def most_common_room_number(dane): def most_common_room_number(dane):
pass k = dane.Rooms[dane.Rooms.value_counts().max()]
return k
def cheapest_flats(dane, n): def cheapest_flats(dane, n):
pass o = dane.sort_values(by ='Expected').head(n)
return o
def find_borough(desc): def find_borough(desc):
dzielnice = ['Stare Miasto', dzielnice = ['Stare Miasto',
@ -19,36 +30,98 @@ def find_borough(desc):
'Winogrady', 'Winogrady',
'Miłostowo', 'Miłostowo',
'Dębiec'] 'Dębiec']
pass
lista = desc.split()
for i in lista:
if i == "Stare": ## do poprawienia
return "Stare Miasto"
else:
for l in dzielnice:
if i == l:
return l
else:
return "Inne"
def add_borough(dane): def add_borough(dane):
pass miasta = []
for i in dane['Location']:
miasta.append(find_borough(i))
dane['Borough'] = miasta
return dane
def write_plot(dane, filename): def write_plot(dane, filename):
pass wykres = dane.Borough.value_counts().plot.bar(figsize = (14,14))
wykres.set_title('Liczba ogłoszeń mieszkań z podziałem na dzielnice')
wykres.set_xlabel('Dzielnice')
wykres.set_ylabel('Liczba')
fig = wykres.get_figure()
fig.savefig(filename + '.png')
def mean_price(dane, room_number): def mean_price(dane, room_number):
pass srednia = dane.Expected[dane.Rooms == room_number].mean()
return round(srednia)
def find_13(dane): def find_13(dane):
pass mieszkania = dane[dane.Floor == 13].Borough.values
return mieszkania
def find_best_flats(dane): def find_best_flats(dane):
pass best = dane[(dane.Borough == 'Winogrady') & (dane.Floor == 1) & (dane.Rooms == 3)]
return best
def main(): def main():
dane = wczytaj_dane() dane = wczytaj_dane()
print(dane[:5]) print(dane[:5])
print('-' * 100)
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)))
n = int(input('Podaj liczbę najtańszych ofert, które mamy wyświetlić -->'))
print("{} to najłądniejsza dzielnica w Poznaniu." print ('Dane', n, 'najtańszych ofert:\n', cheapest_flats(dane, n))
.format(find_borough("Grunwald i Jeżyce")))) print('-' * 100)
add_borough(dane)
filename = 'wykres'
write_plot(dane, filename)
print('Zapisano wykres w pliku')
print('-' * 100)
print("{} to najładniejsza dzielnica w Poznaniu.".format(find_borough("Grunwald i Jeżyce")))
print('-' * 100)
print('Lista dzielnic, które zawierają ofertę mieszkań na 13 piętrze:')
print(find_13(dane))
print('-' * 100)
print('Ogłoszenia mieszkań, które znajdują się na Winogradach, mają 3 pokoje i są położone na 1 piętrze:')
print(find_best_flats(dane))
print('-' * 100)
print("Średnia cena mieszkania 3-pokojowego, to: {}" print("Średnia cena mieszkania 3-pokojowego, to: {}"
.format(mean_price(dane, 3))) .format(mean_price(dane, 3)))
#REGRESJA LINIOWA
print('Budowanie modelu regresji liniowej...')
train = pd.DataFrame(dane[:-1000])
dev = pd.DataFrame(dane[-1000:])
X_train = pd.DataFrame(train, columns=['Rooms','SqrMeters'])
y_train = pd.DataFrame(train, columns=['Expected'])
lm = LinearRegression()
lm.fit(X_train, y_train)
lm.predict(X_train)
X_dev = pd.DataFrame(dev, columns=['Rooms','SqrMeters'])
predicted = lm.predict(X_dev)
rmse = np.sqrt(mean_squared_error(predicted, dev.Expected))
print("RMSE:", round(rmse,2))
if __name__ == "__main__": if __name__ == "__main__":
main() main()

View File

@ -4,77 +4,90 @@
""" """
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(list(data.columns))
""" """
5. Wyświetl ile nasz zbiór danych ma kolumn i wierszy. 5. Wyświetl ile nasz zbiór danych ma kolumn i wierszy.
""" """
shape = data.shape
rows = shape[0]
cols = shape[1]
print('Liczba wierszy:')
print (rows)
print('Liczba kolumn:')
print(cols)
""" """
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'].values)
""" """
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(data['City'].isnull().sum())
""" """
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.
""" """
a = data[data['Agency'] == 'NYPD'].shape
print('Liczba przypadkow', a[0])
""" """
14. Wyświetl wartość minimalną i maksymalną z kolumny Longitude. 14. Wyświetl wartość minimalną i maksymalną z kolumny Longitude.
""" """
print(data.Longitude.min())
print(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'].values + data['Latitude'].values
""" """
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.
""" """
zmienna = data.Descriptor[data['Agency'] == "NYPD"]
print(zmienna.value_counts())