1
0
forked from tdwojak/Python2018

Compare commits

..

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

16 changed files with 47 additions and 233 deletions

View File

@ -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)

View File

@ -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]]]

View File

@ -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]]

View File

@ -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):

View File

@ -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):

View File

@ -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)]]

View File

@ -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]]

View File

@ -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"]]

View File

@ -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]]

View File

@ -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):

View File

@ -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):

View File

@ -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
View 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)]

View File

@ -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

View File

@ -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()

View File

@ -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())