Wprowadzenie do Python Marcin Orchel 1 Środowisko Python Zalecane korzystanie z dystrybucji Anaconda. W systemie linux może być już dostępny Python. Sprawdzenie wersji Pythona, python -V. Uruchomienie interpretera python. Instalacja dla Linux. Pobieramy Anacondę ze strony https://www.anaconda.com/ download/#download dla wersji 3 Pythona. Uruchomienie jupyter notebook poleceniem jupyter-notebook. Utworzenie notebooka Files->New->Python 3. 2 Polecenia print, https://docs.python.org/3/library/functions.html#print exit, https://docs.python.org/3/library/constants.html#exit help z nazwą funkcji jako argument, np. help("print") sprawdzenie typu zmiennej, funkcja type https://docs.python.org/3/library/ functions.html#type 3 Dyrektywy Jupyter wyświetlanie wykresów w notatniku %matplotlib inline Pomiar czasu działania instrukcji %timeit -n 1000 2+2. Parametr n określa ile razy ma się wykonać instrukcja. 4 Skróty klawiszowe Esc - przejście do trybu poleceń, Enter - przejście do edycji H - opis skrótów ctrl-enter - wykonanie instrukcji alt-enter - wykonanie instrukcji i utworzenie komórki 1
shift-enter - wykonanie instrukcji przeniesienie kursora B - utworzenie pustej komórki A - utworzenie pustej komórki nad komórką roboczą DD - usunięcie komórki roboczej X, C, V - wycinanie, kopiowanie, wklejanie komórki Z - wycofanie wprowadzonych zmian Y - oznaczenie kodu Python w komórce M - oznaczenie języka Markdown w komórce w trybie edycji automatyczne uzupełnianie - Tab, wcięcia ctrl+[, ctrl+], komentowanie linii ctrl+/ w komórcę Markdown możemy użyć ctrl-enter aby zobaczyć efekt, lub podobnie alt-enter i shift-enter 5 Język Markdown Nagłówki # nagłowek 1, ## nagłówek 2, itd. Akapity to dwa puste wiersze kursywa to *kursywa* **pogrubienie** kod ~~przekreślenie~~ punktacja to * przed napisem punktowanym, np. * napis1 numerowane listy to po prostu 1. pozycja1, 2. pozycja 2 cytowanie kodu python print("napis") wzory matematyczne wprowadzamy tak jak w tex, ale dla wzorów blokowych używamy $$2+2$$ tabele wprowadzamy rysując ją za pomocą kresek poziomowych i pionowych linki zamieszczamy za pomocą [tekst wyświetlany](link) umieszczenie obrazka to![etykieta](ścieżka) 2
6 Uwagi odnośnie języka Python listy są modyfikowalne lista = [1,2,3,10] krotki są niemodyfikowalne krotka = 1,2,3,10 zakres od zera, range(10) słowniki klucz:wartość { 1: "wartosc1", 2: "wartosc2" } zbiory {"element1", "element2"} instrukcje warunkowe, musi być wcięcie if 2 > 1: print("napis") else: print("napis2") pętle for i in range(10): print("i") while x > 0: print(x) x -= 1 zgłaszanie wyjątków raise Exception("Wyjątek") definiowanie funkcji def funkcja(x): return x**2 7 Przykłady print("hello world.") exit() 3
8 Wektory i macierze pakiet numpy, część składowa biblioteki SciPy załadowanie pakietu numpy, import numpy as np, sprawdzenie wersji np. version klasa ndarray lista zawierająca elementy tego samego typu, (podobnie jak tablica) stworzenie listy liczb całkowitych od zera, np.arrange(10) pomnożenie każdego elementu tej listy lista**2 typ ndarray, utworzenie wektora, funkcja array, utworzenie wektora x = np.array([0, 1, 2]) liczba wymiarów x.ndim, 1 dla wektora rozmiar każdego z wymiarów x.shape, tutaj 3 utworzenie macierzy A = np.array([(1,2), (3,4)]) pole size tablicy to liczba wszystkich elementów, funkcja len(a) to liczba elementów w pierwszym wierszu 9 Ramki danych pakiet pandas, import pandas as pd, pd. version każda kolumna może przechowywać dane różnego typu tworzenie ramek za pomocą konstruktora DataFrame(), do konstruktora przekazujemy słownik, nazwa kolumny wraz z zawartością, np. pd.dataframe( { "A" : (1, 2, 3), "B" : (2, 3, 4) } ) możemy podać również do konstruktora macierz pd.dataframe(a) kolumny reprezentowane są przez obiekty Series 4
10 Wizualizacja danych pakiet matplotlib, moduł pyplot, import matplotlib, import matplotlib.pyplot as plt, a także pakiet seaborn import seaborn as sns umieszczanie rysunków w notatniku zamiast w osobnym oknie, %matplotlib inline narysowanie funkcji kwadratowej x = np.linspace(-10, 10, 5) y = x**2 plt.plot(x, y) plt.show() narysowanie danych ze zbioru danych flights = sns.load_dataset("flights") flights["passengers"].plot() narysowanie punktów iris = sns.load_dataset("iris") plt.scatter(iris.sepal_length, iris.sepal_width) plt.show() lub iris = sns.load_dataset("iris") iris.plot(x="sepal_length", y="sepal_width", kind="scatter") 11 Statystyka moduł stats pakietu scipy, import scipy, import scipy.stats as stats narysowanie wykresu gęstości prawdopodobieństwa x = np.linspace(-10, 10, 100) plt.plot(x, stats.norm.pdf(x, scale=0.5)) plt.show() 12 Uczenie maszynowe pakiet scikit-learn, import sklearn pliki winequality-red.csv, oraz winequality-white.csv 5
wine_red = pd.read_csv("winequality-red.csv", comment="#", sep=";") wine_red[ category ]= red wine_white = pd.read_csv("winequality-white.csv", comment="#", sep=";") wine_white[ category ]= white wine = wine_red.append(wine_white) wine.columns 6