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

Przykład generowania losowego Numbers za pomocą NumPy
Przykład generowania losowego Numbers za pomocą NumPy

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.