Wprowadzenie do Python
Marcin Orchel
1 Środowisko Python, instalacja
• Zalecane korzystanie z dystrybucji Anaconda. W systemie linux może być już do- stępny Python, pakiety python3, python3-jupyter-notebook, python3-matplotlib, python3-numpy, python3-pandas, python3-seaborn. Sprawdzenie wersji Pythona, python -V lub python3 -V. Uruchomienie interpretera python.
• Instalacja manualna dla linux, pobieramy Anacondę ze stronyhttps://www.anaconda.
com/download/#downloaddla wersji 3 Pythona.
• Uruchomienie interpretera pythona w systemie linux python3.
• Uruchomienie jupyter notebook poleceniem jupyter-notebook. W przeglądarce utworzenie notebooka Files->New->Python 3.
2 Podstawy języka
• komentarze #
• help z nazwą funkcji jako argument, np. help("print")
• sprawdzenie typu zmiennej, funkcja typehttps://docs.python.org/3/library/
functions.html#type
• informacje o zmiennej można uzyskać za pomocą operatora ? na końcu, np. x?
3 Przykłady
• print("Hello world.")
• exit()
4 Polecenia
• print, https://docs.python.org/3/library/functions.html#print
• exit, https://docs.python.org/3/library/constants.html#exit
• type https://docs.python.org/3/library/functions.html#type
5 Dyrektywy Jupyter
• wyświetlanie wykresów w notatniku dyrektywa %matplotlib inline
• Pomiar czasu działania instrukcji %timeit -n 1000 2+2. Parametr n określa ile razy ma się wykonać instrukcja.
6 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
• 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+], komento- wanie linii ctrl+/
• w komórce Markdown możemy użyć ctrl-enter aby zobaczyć efekt, lub podobnie alt-enter i shift-enter
7 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ży- wamy $$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)
8 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
9 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 tabli- ca)
• stworzenie listy liczb całkowitych od zera, np.arrange(10)
• potęgowanie 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
• indeksowanie przy użyciu operatora logicznego, x[x > 10]
• https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.shape.
html
• https://docs.scipy.org/doc/numpy/reference/generated/numpy.reshape.html
• https://docs.scipy.org/doc/numpy/reference/generated/numpy.sum.html, ke- epdims
10 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 przeka- zujemy 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
11 Wizualizacja danych
• pakiet matplotlib, moduł pyplot,import matplotlib,import matplotlib.pyplot as plt, a także pakiet seabornimport 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")
12 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()
13 Uczenie maszynowe
• pakiet scikit-learn, import sklearn
• pliki winequality-red.csv, oraz winequality-white.csv
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