forked from tdwojak/Python2018
Compare commits
No commits in common. "master" and "master" have entirely different histories.
@ -9,66 +9,48 @@ Zadania wprowadzające do pierwszych ćwiczeń.
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
pole_kwadratu = 3**2
|
||||
|
||||
"""
|
||||
Stwórz 3 elementową listę, która zawiera nazwy 3 Twoich ulubionych owoców.
|
||||
Wynik przypisz do zmiennej `owoce`.
|
||||
"""
|
||||
owoce = ['banan', 'truskawka', 'pomarańcza']
|
||||
|
||||
|
||||
"""
|
||||
Dodaj do powyższej listy jako nowy element "pomidor".
|
||||
"""
|
||||
owoce.append('pomidor')
|
||||
#print(owoce)
|
||||
|
||||
"""
|
||||
Usuń z powyższej listy drugi element.
|
||||
"""
|
||||
owoce.pop(1)
|
||||
#print(owoce)
|
||||
|
||||
|
||||
"""
|
||||
Rozszerz listę o tablice ['Jabłko', "Gruszka"].
|
||||
"""
|
||||
owoce.extend(['Jabłko', 'Gruszka'])
|
||||
print(owoce)
|
||||
|
||||
"""
|
||||
Wyświetl listę owoce, ale bez pierwszego i ostatniego elementu.
|
||||
"""
|
||||
print(owoce[1:-1])
|
||||
|
||||
"""
|
||||
Wyświetl co trzeci element z listy owoce.
|
||||
"""
|
||||
print(owoce[::3])
|
||||
|
||||
"""
|
||||
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,
|
||||
zaś wartościami były równe 5.
|
||||
"""
|
||||
|
||||
for i in owoce:
|
||||
magazyn[i] = 5
|
||||
print(magazyn)
|
||||
|
||||
|
@ -7,8 +7,8 @@ która zawiera tylko elementy z list o parzystych indeksach.
|
||||
"""
|
||||
|
||||
def even_elements(lista):
|
||||
nowa = lista[::2]
|
||||
return nowa
|
||||
pass
|
||||
|
||||
|
||||
def tests(f):
|
||||
inputs = [[[1, 2, 3, 4, 5, 6]], [[]], [[41]]]
|
||||
|
@ -6,11 +6,7 @@
|
||||
"""
|
||||
|
||||
def days_in_year(days):
|
||||
if (days % 4 == 0 and days % 100 != 0) or days % 400 == 0:
|
||||
return 366
|
||||
else:
|
||||
return 365
|
||||
|
||||
pass
|
||||
|
||||
def tests(f):
|
||||
inputs = [[2015], [2012], [1900], [2400], [1977]]
|
||||
|
@ -13,14 +13,8 @@ jak 'set', która przechowuje elementy bez powtórzeń.)
|
||||
|
||||
|
||||
def oov(text, vocab):
|
||||
slowa = text.split(' ')
|
||||
#print('slowa',slowa)
|
||||
nowe = set(slowa)
|
||||
#print('nowe',nowe)
|
||||
for i in vocab:
|
||||
nowe.remove(i)
|
||||
#print("cos",nowe)
|
||||
return nowe
|
||||
pass
|
||||
|
||||
|
||||
|
||||
def tests(f):
|
||||
|
@ -7,16 +7,7 @@ Jeśli podany argument jest mniejszy od 1 powinna być zwracana wartość 0.
|
||||
"""
|
||||
|
||||
def sum_from_one_to_n(n):
|
||||
suma = 1
|
||||
i = 1
|
||||
if n < 1:
|
||||
return 0
|
||||
else:
|
||||
while i < n:
|
||||
i += 1
|
||||
suma += i
|
||||
|
||||
return suma
|
||||
pass
|
||||
|
||||
|
||||
def tests(f):
|
||||
|
@ -8,10 +8,9 @@ dwoma punktami przestrzeni trójwymiarowej. Punkty są dane jako
|
||||
trzyelementowe listy liczb zmiennoprzecinkowych.
|
||||
np. odległość pomiędzy punktami (0, 0, 0) i (3, 4, 0) jest równa 5.
|
||||
"""
|
||||
import math
|
||||
|
||||
def euclidean_distance(x, y):
|
||||
d = math.sqrt((x[0] - y[0])**2 +(x[1] - y[1])**2 + (x[2] - y[2])**2)
|
||||
return d
|
||||
pass
|
||||
|
||||
def tests(f):
|
||||
inputs = [[(2.3, 4.3, -7.5), (2.3, 8.5, -7.5)]]
|
||||
|
@ -10,12 +10,7 @@ ma być zwracany napis "It's not a Big 'No!'".
|
||||
"""
|
||||
|
||||
def big_no(n):
|
||||
if n < 5:
|
||||
y = ("It's not a Big 'No!'")
|
||||
return y
|
||||
else:
|
||||
u = 'N' + 'O' * n + "!"
|
||||
return u
|
||||
pass
|
||||
|
||||
def tests(f):
|
||||
inputs = [[5], [6], [2]]
|
||||
|
@ -6,12 +6,7 @@ Napisz funkcję char_sum, która dla zadanego łańcucha zwraca
|
||||
sumę kodów ASCII znaków.
|
||||
"""
|
||||
def char_sum(text):
|
||||
suma = 0
|
||||
for i in text:
|
||||
suma += ord(i)
|
||||
return suma
|
||||
|
||||
|
||||
pass
|
||||
|
||||
def tests(f):
|
||||
inputs = [["this is a string"], ["this is another string"]]
|
||||
|
@ -7,11 +7,7 @@ przez 3 lub 5 mniejszych niż n.
|
||||
"""
|
||||
|
||||
def sum_div35(n):
|
||||
suma = 0
|
||||
for i in range(n):
|
||||
if i % 3 == 0 or i % 5 == 0:
|
||||
suma += i
|
||||
return suma
|
||||
pass
|
||||
|
||||
def tests(f):
|
||||
inputs = [[10], [100], [3845]]
|
||||
|
@ -9,11 +9,7 @@ Np. leet('leet') powinno zwrócić '1337'.
|
||||
|
||||
|
||||
def leet_speak(text):
|
||||
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
|
||||
pass
|
||||
|
||||
|
||||
def tests(f):
|
||||
|
@ -9,14 +9,7 @@ na wielką. Np. pokemon_speak('pokemon') powinno zwrócić 'PoKeMoN'.
|
||||
|
||||
|
||||
def pokemon_speak(text):
|
||||
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
|
||||
pass
|
||||
|
||||
|
||||
def tests(f):
|
||||
|
@ -9,19 +9,7 @@ Oba napisy będą składać się wyłacznie z małych liter.
|
||||
"""
|
||||
|
||||
def common_chars(string1, string2):
|
||||
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
|
||||
pass
|
||||
|
||||
|
||||
def tests(f):
|
||||
|
6
labs02/test_task.py
Normal file → Executable file
6
labs02/test_task.py
Normal file → Executable file
@ -3,8 +3,10 @@
|
||||
|
||||
|
||||
def suma(a, b):
|
||||
wynik = a + b
|
||||
return wynik
|
||||
"""
|
||||
Napisz funkcję, która zwraca sumę elementów.
|
||||
"""
|
||||
return 0
|
||||
|
||||
def tests(f):
|
||||
inputs = [(2, 3), (0, 0), (1, 1)]
|
||||
|
@ -1,27 +0,0 @@
|
||||
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
|
||||
|
101
labs06/task02.py
101
labs06/task02.py
@ -1,25 +1,14 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- 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():
|
||||
r = pd.read_csv("mieszkania.csv")
|
||||
dane = pd.DataFrame(r, columns = ['Id', 'Expected', 'Rooms', 'SqrMeters', 'Floor', 'Location', 'Description'])
|
||||
return dane
|
||||
pass
|
||||
|
||||
def most_common_room_number(dane):
|
||||
k = dane.Rooms[dane.Rooms.value_counts().max()]
|
||||
return k
|
||||
pass
|
||||
|
||||
def cheapest_flats(dane, n):
|
||||
o = dane.sort_values(by ='Expected').head(n)
|
||||
return o
|
||||
pass
|
||||
|
||||
def find_borough(desc):
|
||||
dzielnice = ['Stare Miasto',
|
||||
@ -30,98 +19,36 @@ def find_borough(desc):
|
||||
'Winogrady',
|
||||
'Miłostowo',
|
||||
'Dębiec']
|
||||
|
||||
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"
|
||||
|
||||
pass
|
||||
|
||||
|
||||
def add_borough(dane):
|
||||
miasta = []
|
||||
|
||||
for i in dane['Location']:
|
||||
miasta.append(find_borough(i))
|
||||
|
||||
dane['Borough'] = miasta
|
||||
|
||||
return dane
|
||||
pass
|
||||
|
||||
def write_plot(dane, filename):
|
||||
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')
|
||||
|
||||
pass
|
||||
|
||||
def mean_price(dane, room_number):
|
||||
srednia = dane.Expected[dane.Rooms == room_number].mean()
|
||||
return round(srednia)
|
||||
pass
|
||||
|
||||
def find_13(dane):
|
||||
mieszkania = dane[dane.Floor == 13].Borough.values
|
||||
return mieszkania
|
||||
pass
|
||||
|
||||
def find_best_flats(dane):
|
||||
best = dane[(dane.Borough == 'Winogrady') & (dane.Floor == 1) & (dane.Rooms == 3)]
|
||||
return best
|
||||
pass
|
||||
|
||||
def main():
|
||||
dane = wczytaj_dane()
|
||||
print(dane[:5])
|
||||
print('-' * 100)
|
||||
|
||||
print("Najpopularniejsza liczba pokoi w mieszkaniu to: {}"
|
||||
.format(most_common_room_number(dane)))
|
||||
n = int(input('Podaj liczbę najtańszych ofert, które mamy wyświetlić -->'))
|
||||
print ('Dane', n, 'najtańszych ofert:\n', cheapest_flats(dane, n))
|
||||
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("{} 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)))
|
||||
|
||||
#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__":
|
||||
main()
|
||||
|
@ -4,90 +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(list(data.columns))
|
||||
|
||||
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
print(data['City'])
|
||||
|
||||
|
||||
"""
|
||||
7. Wyświetl jakie wartoścu przyjmuje kolumna 'City'.
|
||||
"""
|
||||
print ( data['City'].values)
|
||||
|
||||
"""
|
||||
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(data['City'].isnull().sum())
|
||||
|
||||
|
||||
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
a = data[data['Agency'] == 'NYPD'].shape
|
||||
print('Liczba przypadkow', a[0])
|
||||
|
||||
"""
|
||||
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.
|
||||
"""
|
||||
data['diff'] = data['Longitude'].values + data['Latitude'].values
|
||||
|
||||
|
||||
"""
|
||||
16. Wyświetl tablę rozstawną dla kolumny 'Descriptor', dla której Agency jest
|
||||
równe NYPD.
|
||||
"""
|
||||
zmienna = data.Descriptor[data['Agency'] == "NYPD"]
|
||||
print(zmienna.value_counts())
|
Loading…
Reference in New Issue
Block a user