• Nie Znaleziono Wyników

numpy, matplotlib

N/A
N/A
Protected

Academic year: 2021

Share "numpy, matplotlib"

Copied!
35
0
0

Pełen tekst

(1)

Kurs rozszerzony języka Python

Numpy, SciPy

Marcin Młotkowski

(2)

Wprowadzenie matplotlib

Plan wykładu

1 Wprowadzenie NumPy 2 matplotlib Wprowadzenie Funkcje parametryczne Wykresy animowane

(3)

Wprowadzenie matplotlib NumPy

Plan wykładu

1 Wprowadzenie NumPy 2 matplotlib Wprowadzenie Funkcje parametryczne Wykresy animowane

(4)

Wprowadzenie

matplotlib NumPy

Wstęp

(5)

Wprowadzenie matplotlib NumPy

Pakiety

NumPy SciPy matplotlib Pandas

(6)

Wprowadzenie

matplotlib NumPy

Narzędzia

IPython

(7)

Wprowadzenie

matplotlib NumPy

Biblioteka NumPy

Obliczenia numeryczne na n–wymiarowych tablicach

(8)

Wprowadzenie

matplotlib NumPy

Biblioteka

(9)

Wprowadzenie

matplotlib NumPy

Podstawowy typ

ndarray: n–dimensional array Podstawowy typ przypominający listę

(10)

Wprowadzenie

matplotlib NumPy

Podstawowe cechy tego typu

przechowują zmienne tylko jednego typu (głównie np.int32, np.float64);

mają określony kształt (np. trójwymiarowa macierz rozmiaru 3x4x5);

broadcasting : operacje na wszystkich elementach, np.

pomnożenie wszystkich elementów przez liczbę;

(11)

Wprowadzenie

matplotlib NumPy

Po co ndarray

O wiele szybsze niż listy

(12)

Wprowadzenie matplotlib NumPy

Tworzenie tablic

importnumpy as np x = np.arange(15) x = np.zeros((4,5,6)) x = np.array([[3.1415, 2.7182, 1.6180], [4.135, 1.660, 12.56]])

(13)

Wprowadzenie matplotlib NumPy

Tworzenie tablic

importnumpy as np x = np.arange(15) x = np.zeros((4,5,6)) x = np.array([[3.1415, 2.7182, 1.6180], [4.135, 1.660, 12.56]])

(14)

Wprowadzenie matplotlib NumPy

Tworzenie tablic

importnumpy as np x = np.arange(15) x = np.zeros((4,5,6)) x = np.array([[3.1415, 2.7182, 1.6180], [4.135, 1.660, 12.56]])

(15)

Wprowadzenie

matplotlib NumPy

Dostęp do elementów (indexing)

x = np.array([[3.1415, 2.7182, 1.6180], [4.135, 1.660, 12.56]]) prawie tak jak już znamy: x[1,2] (Python: x[1][1] lub x[(1,1)]);

slicing: x[<selekcja po wymiarze 0>, <selekcja po wymiarze

1>, ...]

x[2, :] x[:, -1]

(16)

Wprowadzenie

matplotlib NumPy

Dostęp do elementów (indexing)

x = np.array([[3.1415, 2.7182, 1.6180], [4.135, 1.660, 12.56]]) prawie tak jak już znamy: x[1,2] (Python: x[1][1] lub x[(1,1)]); slicing: x[<selekcja po wymiarze 0>, <selekcja po wymiarze

1>, ...]

x[2, :] x[:, -1]

(17)

Wprowadzenie

matplotlib NumPy

Dostęp do elementów (indexing)

x = np.array([[3.1415, 2.7182, 1.6180], [4.135, 1.660, 12.56]]) prawie tak jak już znamy: x[1,2] (Python: x[1][1] lub x[(1,1)]); slicing: x[<selekcja po wymiarze 0>, <selekcja po wymiarze

1>, ...]

x[2, :]

x[:, -1]

(18)

Wprowadzenie

matplotlib NumPy

Dostęp do elementów (indexing)

x = np.array([[3.1415, 2.7182, 1.6180], [4.135, 1.660, 12.56]]) prawie tak jak już znamy: x[1,2] (Python: x[1][1] lub x[(1,1)]); slicing: x[<selekcja po wymiarze 0>, <selekcja po wymiarze

1>, ...]

x[2, :] x[:, -1]

(19)

Wprowadzenie matplotlib NumPy

Broadcasting

x = np.array([[3.1415, 2.7182, 1.6180], [4.135, 1.660, 12.56]]) y = x + 2.5 y = x * 2.5

(20)

Wprowadzenie matplotlib NumPy

Broadcasting

x = np.array([[3.1415, 2.7182, 1.6180], [4.135, 1.660, 12.56]]) y = x + 2.5 y = x * 2.5

(21)

Wprowadzenie

matplotlib NumPy

Wyszukiwanie

y > 5

albo x.where(x > 5)

(22)

Wprowadzenie

matplotlib NumPy

Odczyt i zapis

dane = np.loadtxt(’dane.csv’, delimiter=’,’, usecols=(5,7))

(23)

Wprowadzenie

matplotlib NumPy

Odczyt i zapis

dane = np.loadtxt(’dane.csv’, delimiter=’,’, usecols=(5,7)) np.save(’plik’, dane, delimiter=’|’)

(24)

Wprowadzenie matplotlib Wprowadzenie Funkcje parametryczne Wykresy animowane

Plan wykładu

1 Wprowadzenie NumPy 2 matplotlib Wprowadzenie Funkcje parametryczne Wykresy animowane

(25)

Wprowadzenie matplotlib Wprowadzenie Funkcje parametryczne Wykresy animowane

Co to jest

Narzędzie do rysowania wykresów. Bardzo różnych.

(26)

Wprowadzenie matplotlib Wprowadzenie Funkcje parametryczne Wykresy animowane

Prosty przykład

importnumpy as np importmatplotlib/pyplotas plt x = np.arange(-4*np.pi, 4*np.pi, 0.1) y = np.sin(x) plt.plot(x,y) plt.show()

(27)

Wprowadzenie

matplotlib

Wprowadzenie Funkcje parametryczne Wykresy animowane

Inny przykład: histogram

x = np.random.randint(1,10, size=1000) plt.hist(10)

plt.show()

(28)

Wprowadzenie

matplotlib

Wprowadzenie Funkcje parametryczne Wykresy animowane

Wykres temperatur w Jarocinie w styczniu

(29)

Wprowadzenie

matplotlib

Wprowadzenie Funkcje parametryczne Wykresy animowane

Jeszcze inny przykład: rzut ukośny

(30)

Wprowadzenie

matplotlib

Wprowadzenie Funkcje parametryczne Wykresy animowane

Wykresy funkcji parametrycznych

Przykład: figury Lissajous

x (t) = sin(a ∗ t + π/2) y (t) = sin(b ∗ t) gdzie a i b są pewnymi stałymi.

(31)

Wprowadzenie

matplotlib

Wprowadzenie Funkcje parametryczne Wykresy animowane

Jak animować wykresy

wykres początkowy dla pewnych danych (wektory x i y) początkowych;

aktualizacja: zmodyfikować x i y, narysować;

wykorzystać obiekt klasy matplotlib.animation.FuncAnim

(32)

Wprowadzenie matplotlib Wprowadzenie Funkcje parametryczne Wykresy animowane

Początek

fig = plt.figure() ax = plt.axes(xlim = (-2,2), ylim = (-2, 2)) xdata, ydata = [], [] line, = ax.plot([], []) definit(): line.set data([].[]) returnline,

(33)

Wprowadzenie matplotlib Wprowadzenie Funkcje parametryczne Wykresy animowane

Początek

fig = plt.figure() ax = plt.axes(xlim = (-2,2), ylim = (-2, 2)) xdata, ydata = [], [] line, = ax.plot([], []) definit(): line.set data([].[]) returnline,

(34)

Wprowadzenie matplotlib Wprowadzenie Funkcje parametryczne Wykresy animowane

Aktualizacja wykresu

defanimate(i): t = 0.01*i x = np.sin(a * t + np.pi / 2.0) y = np.sin(b*t) xdata.append(x) ydata.append(y)

line.set data(xdata, ydata)

(35)

Wprowadzenie matplotlib Wprowadzenie Funkcje parametryczne Wykresy animowane

I na koniec:

ani = animation.FuncAnimation(fig, animate, init func=init, frames=500, interval=50, blit=True)

plt.show()

Cytaty

Powiązane dokumenty

listu żelaznego od Chmielnickiego, zdobycie chorągwi, udział w chłopskim weselu, uwolnienie się z rąk Bohuna, wizyta u Horpyny, pokonanie Burłaja). KRYTERIA OCENY ROZPRAWKI

nazwa%FOUND - ostatnia instrukcja FETCH zwróciła wiersz nazwa%NOTFOUND - ostatnia instrukcja FETCH nie zwróciła wiersza nazwa%ROWCOUNT - ilość zwróconych dotychczas

Oczywiście bynajmniej nie wynika z tego, że problemy decyzyjne: istnienie cyklu Hamiltona w danym grafie czy problem spełnialności formuł są łatwe.. Wręcz odwrotnie: podejrzewa

[r]

– otrzymuje punkty tylko w kategoriach: określenie problemu, sformułowanie stanowiska wobec rozwiązania przyjętego przez autora tekstu i poprawność rzeczowa, jeśli praca

Uwaga: jeśli powyższe kryteria nie zostały spełnione, nie przyznaje się punktów1. 1 Uwaga: jeśli powyższe kryteria nie zostały spełnione, nie przyznaje

Je±li pewna pochodna funkcji zeruje si¦ na pewnym przedziale, to wszystkie jej pochodne wy»szych rz¦dów równie» s¡ stale równe zero na tym przedziale... St¡d wynika, »e R

Przetłumacz poniższe zdania na język angielski używając konstrukcji “than+stopień wyższy przymiotnika” oraz „as..as+stopień równy przymiotnika”, w nawiasie podano