Python Samouczek NumPy dla początkujących: ucz się na przykładach
W czym jest NumPy Python?
numpy to biblioteka typu open source dostępna w Python, która pomaga w programowaniu matematycznym, naukowym, inżynieryjnym i naukowym. Jest to bardzo przydatna biblioteka do wykonywania operacji matematycznych i statystycznych w Python. Działa doskonale w przypadku tablic wielowymiarowych i mnożenia macierzy. Łatwo jest zintegrować się z C/C++ i Fortran.
W przypadku każdego projektu naukowego NumPy jest narzędziem, które warto poznać. Został zbudowany do pracy z tablicą N-wymiarową, algebrą liniową, liczbą losową, transformatą Fouriera itp.
NumPy to język programowania, który zajmuje się wielowymiarowymi tablicami i macierzami. Oprócz tablic i macierzy NumPy obsługuje dużą liczbę operacji matematycznych. W tej części przejrzymy podstawowe funkcje, które musisz znać do samouczka na temat 'TensorFlow".
Dlaczego warto używać NumPy?
NumPy to wydajność pamięci, co oznacza, że może obsłużyć ogromną ilość danych bardziej dostępnych niż jakakolwiek inna biblioteka. Poza tym NumPy jest bardzo wygodny w obsłudze, szczególnie w przypadku mnożenia i przekształcania macierzy. Co więcej, NumPy jest szybki. W rzeczywistości TensorFlow i Scikit uczą się używać tablicy NumPy do obliczania mnożenia macierzy na zapleczu.
Jak zainstalować NumPy
Aby zainstalować bibliotekę NumPy, zapoznaj się z naszym tutorialem Jak zainstalować TensorFlow. NumPy jest domyślnie instalowany z Anacondą.
W zdalnym przypadku NumPy nie jest zainstalowany-
Możesz zainstalować NumPy za pomocą Anacondy:
conda install -c anaconda numpy
- In Jupyter Zeszyt :
import sys !conda install --yes --prefix {sys.prefix} numpy
Zaimportuj NumPy i sprawdź wersję
Polecenie importowania numpy to:
import numpy as np
Powyższy kod zmienia nazwę przestrzeni nazw Numpy na np. Dzięki temu możemy poprzedzać funkcję, metody i atrybuty Numpy znakiem „np” zamiast wpisywać „numpy”. Jest to standardowy skrót, który znajdziesz w literaturze numpy
Aby sprawdzić zainstalowaną wersję NumPy, użyj poniższego polecenia:
print (np.__version__)
Wyjście:
1.18.0
Co to jest Python Tablica NumPy?
Tablice NumPy są trochę podobne Python listy, ale jednocześnie bardzo się od siebie różnią. Dla tych z Was, którzy są nowi w tym temacie, wyjaśnijmy, co to dokładnie jest i do czego jest dobre.
Jak sama nazwa zdradza, tablica NumPy jest centralną strukturą danych biblioteki numpy. Nazwa biblioteki jest w rzeczywistości skrótem od „Numeric Python” lub „Numeryczne Python".
Tworzenie tablicy NumPy
Najprostszym sposobem na utworzenie tablicy w Numpy jest użycie Python Lista
myPythonList = [1,9,8,3]
Aby przekonwertować listę Pythona na tablicę numpy za pomocą obiektu np.array.
numpy_array_from_list = np.array(myPythonList)
Aby wyświetlić zawartość listy
numpy_array_from_list
Wyjście:
array([1, 9, 8, 3])
W praktyce nie ma potrzeby deklarowania a Python Lista. Operacja może być łączona.
a = np.array([1,9,8,3])
UWAGA: Dokumentacja Numpy stwierdza użycie np.ndarray do utworzenia tablicy. Jest to jednak zalecana metoda.
Możesz także utworzyć tablicę numpy z krotki.
Matematyczny Operacje na tablicy
Możesz wykonywać operacje matematyczne, takie jak dodawanie, odejmowanie, dzielenie i mnożenie na tablicy. Składnia to nazwa tablicy, po której następuje operacja (+.-,*,/), a następnie operand
Przykład:
numpy_array_from_list + 10
Wyjście:
array([11, 19, 18, 13])
Operacja ta dodaje 10 do każdego elementu tablicy numpy.
Kształt tablicy
Możesz sprawdzić kształt tablicy za pomocą kształtu obiektu poprzedzonego nazwą tablicy. W ten sam sposób możesz sprawdzić typ za pomocą dtypes.
import numpy as np a = np.array([1,2,3]) print(a.shape) print(a.dtype) (3,) int64
Liczba całkowita to wartość bez miejsca dziesiętnego. Jeśli utworzysz tablicę z liczbą dziesiętną, typ zmieni się na zmiennoprzecinkowy.
#### Different type b = np.array([1.1,2.0,3.2]) print(b.dtype) float64
2-wymiarowa tablica
Możesz dodać wymiar ze znakiem „”, przecinkiem
Pamiętaj, że musi znajdować się w nawiasie []
### 2 dimension c = np.array([(1,2,3), (4,5,6)]) print(c.shape) (2, 3)
3-wymiarowa tablica
Wyższy wymiar można skonstruować w następujący sposób:
### 3 dimension d = np.array([ [[1, 2,3], [4, 5, 6]], [[7, 8,9], [10, 11, 12]] ]) print(d.shape) (2, 2, 3)
Cel | Code |
---|---|
Utwórz tablicę | tablica([1,2,3]) |
wydrukuj kształt | tablica([.]).kształt |
Co to jest numpy.zeros()?
liczba.zera() lub np. zera Python funkcja służy do tworzenia macierzy pełnej zer. numpy.zeros() w Python można użyć podczas inicjowania wag podczas pierwszej iteracji w TensorFlow i innych zadaniach statystycznych.
Funkcja numpy.zeros() Składnia
numpy.zeros(shape, dtype=float, order='C')
Python numpy.zeros() Parametry
Tutaj,
- Shape: jest kształtem tablicy zerowej numpy
- Typ D: jest typem danych wyrażonym w liczbach zer. Jest to opcjonalne. Wartość domyślna to float64
- Zamówienie: Domyślnie jest to C, które jest niezbędnym stylem wiersza dla numpy.zeros() in Python.
Python numpy.zeros() Przykład
import numpy as np np.zeros((2,2))
Wyjście:
array([[0., 0.], [0., 0.]])
Przykład numpy zero z typem danych
import numpy as np np.zeros((2,2), dtype=np.int16)
Wyjście:
array([[0, 0], [0, 0]], dtype=int16)
Co to jest numpy.ones()?
funkcja np.ones(). służy do tworzenia macierzy pełnej jedynek. numpy.ones() w Python można użyć podczas inicjowania wag podczas pierwszej iteracji w TensorFlow i innych zadaniach statystycznych.
Python numpy.ones() Składnia
numpy.ones(shape, dtype=float, order='C')
Python Parametry numpy.ones().
Tutaj,
- Shape: to kształt np.jedynek Python Szyk
- Typ D: to typ danych w formacie numpy. Jest to opcjonalne. Wartość domyślna to float64
- Zamówienie: Domyślnie jest to C, który jest niezbędnym stylem wiersza.
Python numpy.ones() Tablica 2D z przykładem typu danych
import numpy as np np.ones((1,2,3), dtype=np.int16)
Wyjście:
array([[[1, 1, 1], [1, 1, 1]]], dtype=int16)
Funkcja numpy.reshape() w Python
Python Zmień kształt NumPy Funkcja służy do kształtowania tablicy bez zmiany jej danych. W niektórych przypadkach może zaistnieć potrzeba zmiany kształtu danych z szerokiego na długi. Możesz do tego użyć funkcji np.reshape.
Składnia np.reshape()
numpy.reshape(a, newShape, order='C')
Tutaj,
a: Tablica, którą chcesz zmienić
nowy kształt: Nowy kształt pragnień
Zamówienie: Domyślnie jest to C, który jest niezbędnym stylem wiersza.
Przykład zmiany kształtu NumPy
import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) e.reshape(3,2)
Wyjście:
// Before reshape [[1 2 3] [4 5 6]]
//After Reshape array([[1, 2], [3, 4], [5, 6]])
numpy.flatten() w Python
Python Spłaszcz NumPy funkcja służy do zwrócenia kopii tablicy w jednym wymiarze. Kiedy masz do czynienia z siecią neuronową, taką jak convnet, musisz spłaszczyć tablicę. Można do tego użyć funkcji np.flatten().
Składnia np.flatten()
numpy.flatten(order='C')
Tutaj,
Zamówienie: Domyślnie jest to C, który jest niezbędnym stylem wiersza.
Przykład NumPy Flatten
e.flatten()
Wyjście:
array([1, 2, 3, 4, 5, 6])
Do czego służy numpy.hstack()? Python?
Numpy.hstack jest funkcją w Python który służy do poziomego układania sekwencji tablic wejściowych w celu utworzenia pojedynczej tablicy. Dzięki funkcji hstack() możesz dołączać dane w poziomie. Jest to bardzo wygodna funkcja w NumPy.
Przestudiujmy hstack Python z przykładem:
Przykład:
## Horitzontal Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Horizontal Append:', np.hstack((f, g)))
Wyjście:
Horizontal Append: [1 2 3 4 5 6]
Do czego służy numpy.vstack()? Python?
Numpy.vstack jest funkcją w Python który służy do układania w pionie sekwencji tablic wejściowych w celu utworzenia pojedynczej tablicy. Dzięki funkcji vstack() możesz dołączać dane w pionie.
Przeanalizujmy to na przykładzie:
Przykład:
## Vertical Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Vertical Append:', np.vstack((f, g)))
Wyjście:
Vertical Append: [[1 2 3] [4 5 6]]
Po zapoznaniu się z NumPy vstack i hstack, przyjrzyjmy się przykładowi generowania liczb losowych w NumPy.
Generuj losowo Numbers za pomocą NumPy
Aby wygenerować liczby losowe dla rozkładu Gaussa, użyj:
numpy.random.normal(loc, scale, size)
Tutaj,
- Miejsce: średnia. Centrum dystrybucji
- Skala: odchylenie standardowe.
- Rozmiar: liczba zwrotów
Przykład:
## Generate random nmber from normal distribution normal_array = np.random.normal(5, 0.5, 10) print(normal_array) [5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
Jeśli zostanie przedstawiony na wykresie, rozkład będzie podobny do poniższego wykresu
Funkcja tablicy NumPy
Funkcja asarray() jest używana, gdy chcesz przekonwertować dane wejściowe na tablicę. Dane wejściowe mogą być listami, krotką, ndarray itp.
Składnia:
numpy.asarray(data, dtype=None, order=None)[source]
Tutaj,
dane: Dane, które chcesz przekonwertować na tablicę
dtyp: To jest argument opcjonalny. Jeśli nie określono, typ danych zostanie wywnioskowany z danych wejściowych
Zamówienie: Domyślnie jest to C, który jest niezbędnym stylem wiersza. Inną opcją jest F (w stylu Fortana)
Przykład:
Rozważ następującą macierz 2-D z czterema wierszami i czterema kolumnami wypełnionymi wartością 1
import numpy as np A = np.matrix(np.ones((4,4)))
Jeśli chcesz zmienić wartość macierzy, nie możesz. Powodem jest to, że nie można zmienić kopii.
np.array(A)[2]=2 print(A) [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]]
Macierz jest niezmienna. Możesz użyć asarray, jeśli chcesz dodać modyfikację w oryginalnej tablicy. Zobaczmy, czy nastąpi jakakolwiek zmiana, gdy chcesz zmienić wartość trzecich wierszy na wartość 2.
np.asarray(A)[2]=2 print(A)
Wyjaśnienie kodu:
np.asarray(A): konwertuje macierz A na tablicę
[2]: wybierz trzecie rzędy
Wyjście:
[[1. 1. 1. 1.] [1. 1. 1. 1.] [2. 2. 2. 2.] # new value [1. 1. 1. 1.]]
Co to jest numpy.arange()?
numpy.arange() to wbudowana funkcja numpy, która zwraca obiekt ndarray zawierający równomiernie rozmieszczone wartości w określonym przedziale. Na przykład chcesz utworzyć wartości od 1 do 10; możesz użyć np.arange() w Python funkcja.
Składnia:
numpy.arange(start, stop, step, dtype)
Python Parametry NumPy:
- Start: Początek interwału dla np.arange in Python funkcja.
- Stop: Koniec przerwy.
- Ewolucja krok po kroku: Odstępy między wartościami. Domyślny krok to 1.
- Typ D: Jest typem tablicy wyjściowej dla układu NumPy Python.
Przykład:
import numpy np np.arange(1, 11)
Wyjście:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Przykład:
Jeśli chcesz zmienić krok w tej funkcji układania NumPy w Python na przykład możesz dodać trzecią liczbę w nawiasie. To zmieni krok.
import numpy np np.arange(1, 14, 4)
Wyjście:
array([ 1, 5, 9, 13])
Funkcja NumPy Linspace
Linspace daje równomiernie rozmieszczone próbki.
Składnia:
numpy.linspace(start, stop, num, endpoint)
Tutaj,
- Start: Wartość początkowa sekwencji
- Stop: Wartość końcowa sekwencji
- Ilość: Liczba próbek do wygenerowania. Wartość domyślna to 50
- Punkt końcowy: Jeśli True (domyślnie), ostatnią wartością jest stop. Jeśli Fałsz, wartość stopu nie jest uwzględniana.
Przykład:
Na przykład można go użyć do utworzenia 10 wartości od 1 do 5 w równych odstępach.
import numpy as np np.linspace(1.0, 5.0, num=10)
Wyjście:
array([1. , 1.44444444, 1.88888889, 2.33333333, 2.77777778, 3.22222222, 3.66666667, 4.11111111, 4.55555556, 5. ])
Jeśli nie chcesz uwzględniać ostatniej cyfry w przedziale, możesz ustawić punkt końcowy na wartość false
np.linspace(1.0, 5.0, num=5, endpoint=False)
Wyjście:
array([1. , 1.8, 2.6, 3.4, 4.2])
Funkcja LogSpace NumPy w Python
LogSpace zwraca liczby o równych odstępach na skali logarytmicznej. Logspace ma te same parametry co np.linspace.
Składnia:
numpy.logspace(start, stop, num, endpoint)
Przykład:
np.logspace(3.0, 4.0, num=4)
Wyjście:
array([ 1000. , 2154.43469003, 4641.58883361, 10000. ])
Na koniec, jeśli chcesz sprawdzić rozmiar pamięci elementu w tablicy, możesz użyć itemsize
x = np.array([1,2,3], dtype=np.complex128) x.itemsize
Wyjście:
16
Każdy element zajmuje 16 bajtów.
Indeksowanie i wycinanie Python
Krojenie danych jest trywialne w przypadku numpy. Przetniemy macierz „e”. Zauważ, że w Python, musisz użyć nawiasów, aby zwrócić wiersze lub kolumny
Przykład:
## Slice import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) [[1 2 3] [4 5 6]]
Pamiętaj, że w przypadku numpy pierwsza tablica/kolumna zaczyna się od 0.
## First column print('First row:', e[0]) ## Second col print('Second row:', e[1])
Wyjście:
First row: [1 2 3] Second row: [4 5 6]
In Pythonpodobnie jak wiele innych języków,
- Wartości przed przecinkiem oznaczają wiersze
- Wartość po prawej stronie oznacza kolumny.
- Jeśli chcesz wybrać kolumnę, musisz dodać : przed indeksem kolumny.
- : oznacza, że chcesz mieć wszystkie wiersze z wybranej kolumny.
print('Second column:', e[:,1])
Second column: [2 5]
Aby zwrócić pierwsze dwie wartości z drugiego wiersza. Używasz :, aby wybrać wszystkie kolumny aż do drugiej
## Second Row, two values print(e[1, :2]) [4 5]
Funkcje statystyczne w Python
NumPy ma sporo przydatnych funkcji statystycznych do znajdowania minimum, maksimum, percentyla odchylenia standardowego i wariancji itp. na podstawie danych elementów tablicy. Funkcje są wyjaśnione w następujący sposób: −
Numpy jest wyposażony w solidną funkcję statystyczną wymienioną poniżej
Funkcjonować | Odrętwiały |
---|---|
Min | np.min() |
Max | np.max() |
Oznaczać | np. średnia() |
Mediana | np.mediana() |
Odchylenie standardowe | np.std() |
Rozważ następującą tablicę:
Przykład:
import numpy as np normal_array = np.random.normal(5, 0.5, 10) print(normal_array)
Wyjście:
[5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
Przykład funkcji statystycznej NumPy
### Min print(np.min(normal_array)) ### Max print(np.max(normal_array)) ### Mean print(np.mean(normal_array)) ### Median print(np.median(normal_array)) ### Sd print(np.std(normal_array))
Wyjście:
4.467042435266913 5.612113171990201 4.934841002270593 4.846995625786663 0.3875019367395316
Co to jest iloczyn kropkowy?
Produkt Numpy.dot to potężna biblioteka do obliczeń macierzowych. Na przykład możesz obliczyć iloczyn skalarny za pomocą np.dot. Iloczyn Numpy.dot jest iloczynem skalarnym a i b. numpy.dot() w Python obsługuje tablice 2D i wykonuje mnożenia macierzy.
Składnia:
numpy.dot(x, y, out=None)
parametry
Tutaj,
x, y: Tablice wejściowe. Aby funkcja np.dot() działała, obydwa wartości x i y powinny być 1-D lub 2-D
na zewnątrz: To jest argument wyjściowy dla skalara tablicy 1-D, który ma zostać zwrócony. W przeciwnym razie należy zwrócić ndarray.
Zwroty
Funkcja numpy.dot() w Python zwraca iloczyn skalarny dwóch tablic x i y. Funkcja dot() zwraca skalar, jeśli zarówno x, jak i y są 1-D; w przeciwnym razie zwraca tablicę. Jeśli podano 'out', to jest ono zwracane.
Podnosi
Produkt w kropce Python zgłasza wyjątek ValueError, jeśli ostatni wymiar x nie ma tego samego rozmiaru, co przedostatni wymiar y.
Przykład:
## Linear algebra ### Dot product: product of two arrays f = np.array([1,2]) g = np.array([4,5]) ### 1*4+2*5 np.dot(f, g)
Wyjście:
14
Mnożenie macierzy w Python
Funkcja Numpy matmul() służy do zwracania iloczynu macierzowego 2 tablic. Oto jak to działa
1) Tablice 2-D, zwraca normalny produkt
2) Wymiary > 2, produkt traktowany jest jako stos matrycy
3) Najpierw tablica 1-D jest przekształcana w macierz, a następnie obliczany jest iloczyn
Składnia:
numpy.matmul(x, y, out=None)
Tutaj,
x, y: Tablice wejściowe. skalary niedozwolone
na zewnątrz: Jest to parametr opcjonalny. Zwykle dane wyjściowe są przechowywane w ndarray
Przykład:
W ten sam sposób możesz obliczyć mnożenie macierzy za pomocą np.matmul
### Matmul: matruc product of two arrays h = [[1,2],[3,4]] i = [[5,6],[7,8]] ### 1*5+2*7 = 19 np.matmul(h, i)
Wyjście:
array([[19, 22], [43, 50]])
wyznacznik
Na koniec, jeśli chcesz obliczyć wyznacznik, możesz użyć np.linalg.det(). Zauważ, że numpy dba o wymiar.
Przykład:
## Determinant 2*2 matrix ### 5*8-7*6np.linalg.det(i)
Wyjście:
-2.000000000000005
Podsumowanie
- Python to biblioteka typu open source dostępna w Python, który pomaga w matematyce, nauce, inżynierii i programowanie nauki o danych.
- numpy.zeros() lub np.zeros Python funkcja służy do tworzenia macierzy pełnej zer.
- numpy.ones() w Python można użyć podczas inicjowania wag podczas pierwszej iteracji w TensorFlow i innych zadaniach statystycznych.
- Python Funkcja NumPy Reshape służy do kształtowania tablicy bez zmiany jej danych.
- Python Funkcja NumPy Flatten służy do zwracania kopii tablicy w jednym wymiarze.
- Numpy.hstack jest funkcją w Python który służy do poziomego układania sekwencji tablic wejściowych w celu utworzenia pojedynczej tablicy.
- Numpy.vstack jest funkcją w Python który służy do układania w pionie sekwencji tablic wejściowych w celu utworzenia pojedynczej tablicy.
- numpy.arange() to wbudowana funkcja numpy, która zwraca obiekt ndarray zawierający wartości rozmieszczone w równych odstępach w określonym przedziale.
- Produkt Numpy.dot to potężna biblioteka do obliczeń macierzowych.
- Funkcja Numpy matmul() służy do zwracania iloczynu macierzowego 2 tablic.