Python Samouczek NumPy dla początkujących

⚡ Inteligentne podsumowanie

NumPy jest podstawą Python Biblioteka do obliczeń numerycznych, obsługująca tablice, macierze, algebrę liniową i losowe próbkowanie. Ten samouczek NumPy przeprowadzi Cię przez proces instalacji, tworzenia tablic i resha.ping, krojenie, statystyka i matematyka macierzowa z możliwością uruchomienia Python przykłady.

  • Zastosowanie rdzenia: Szybkie tablice N-wymiarowe i wektoryzacja matematyki w Python.
  • ⚙️ Kluczowe funkcje: zera, jedynki, zmiana kształtu, hstack, kropka, linspace.
  • 📚 Foundations: Algebra liniowa, nadawanie, statystyka, dzielenie.
  • 🚀 Obecna wersja: NumPy 2.x (wydane w czerwcu 2024 r.) jest już stabilne.
  • 🤖 Wykorzystanie sztucznej inteligencji: Kręgosłup PyTortensory ch, TensorFlow, JAX i CuPy.

Python Samouczek NumPy

W czym jest NumPy Python?

numpy jest oprogramowaniem typu open source Python Biblioteka do programowania matematycznego, naukowego, inżynierskiego i analizy danych. Jest to bardzo przydatna biblioteka do operacji matematycznych i statystycznych w Python. Działa doskonale z tablicami wielowymiarowymi i mnożeniem macierzy, a także łatwo integruje się z C/C++ oraz Fortran.

NumPy to narzędzie niezbędne do każdego projektu naukowego. Został stworzony do obsługi tablic N-wymiarowych, algebry liniowej, generowania liczb losowych, transformacji Fouriera i wielu innych zadań.

NumPy daje Python Najwyższej klasy obsługa tablic i macierzy wielowymiarowych oraz bogaty zestaw operacji matematycznych, które na nich działają. W tym przewodniku omówimy podstawowe funkcje, które musisz znać, zanim przejdziesz do samouczka „TensorFlow".

Dlaczego warto używać NumPy?

NumPy jest wydajny pod względem pamięci, dzięki czemu może obsługiwać duże ilości danych liczbowych łatwiej niż czysty Python listy. Jest to również bardzo wygodne do mnożenia i przekształcania macierzy.pingi jest szybki, ponieważ większość pracy jest delegowana do skompilowanych procedur C. W rzeczywistości biblioteki takie jak TensorFlow, PyTorch i Scikit-learn wykorzystują tablice NumPy do obliczeń macierzowych w swoim zapleczu, co sprawia, że ​​NumPy jest cichym koniem roboczym większości nowoczesnych procesów związanych z nauką o danych i sztuczną inteligencją.

Jak zainstalować NumPy

Aby zainstalować bibliotekę NumPy, zapoznaj się z naszym samouczkiem Jak zainstalować TensorFlow. NumPy jest domyślnie instalowany z Anacondą.

W rzadkim przypadku, gdy pakiet NumPy nie jest zainstalowany, użyj dowolnej z poniższych opcji.

Możesz zainstalować NumPy za pomocą Anacondy:

conda install -c anaconda numpy
  • In Jupyter Notebook:
import sys
!conda install --yes --prefix {sys.prefix} numpy

Użytkownicy Pip mogą przeprowadzić instalację lub aktualizację za pomocą jednego polecenia:

pip install --upgrade numpy

Zaimportuj NumPy i sprawdź wersję

Polecenie importowania numpy to:

import numpy as np

Powyższy wiersz zmienia nazwę przestrzeni nazw NumPy na np. Ten skrót pozwala na dodawanie prefiksów do funkcji, metod i atrybutów NumPy np. zamiast typing numpy.i jest to standardowa konwencja, którą można znaleźć w całym ekosystemie NumPy.

Aby sprawdzić zainstalowaną wersję NumPy, użyj poniższego polecenia:

print(np.__version__)

Wyjście:

2.1.3

NumPy 2.0 ukazało się w czerwcu 2024 roku i jest obecnie stabilną wersją głównej serii. Jeśli Twój projekt nadal zależy od API 1.x, przypnij do numpy<2 w pliku wymagań, ponieważ niektóre starsze aliasy, takie jak np.float zostały usunięte w wersji 2.0.

Czym są sterowniki Python Tablica NumPy?

Tablice NumPy wyglądają trochę jak Python Na pierwszy rzut oka wyglądają jak listy, ale zachowują się zupełnie inaczej. Dla czytelników, którzy nie znają tematu, wyjaśnijmy, czym jest ndarray i dlaczego jest tak ważny.

Jak sama nazwa wskazuje, tablica NumPy jest centralną strukturą danych biblioteki NumPy. Sama nazwa jest skrótem od „Numeric” (liczba). Python” lub „Numeryczne Python”, a ndarray jest jednorodnym blokiem pamięci o stałym rozmiarze, znanym kształcie i typie danych.

Tworzenie tablicy NumPy

Najprostszym sposobem utworzenia tablicy w NumPy jest rozpoczęcie od Python Lista.

myPythonList = [1,9,8,3]

przekonwertować Python lista do tablicy NumPy za pomocą np.array.

numpy_array_from_list = np.array(myPythonList)

Wyświetl zawartość tablicy.

numpy_array_from_list

Wyjście:

array([1, 9, 8, 3])

W praktyce nie ma potrzeby deklarowania a Python najpierw wypisz. Te dwa kroki można połączyć.

a = np.array([1,9,8,3])

UWAGA: W dokumentacji NumPy wspomniano również np.ndarray, ale np.array jest funkcją fabrycznie zalecaną do codziennego użytku.

W ten sam sposób można również utworzyć tablicę NumPy z krotki.

Matematyczny Operacje na tablicy

Możesz wykonywać operacje matematyczne, takie jak dodawanie, podpisywanietracdzielenie, dzielenie i mnożenie tablicy. Składnia to nazwa tablicy, po której następuje operator (+, -, *, /), po którym następuje operand. Operacje te są wektoryzowane, co oznacza, że ​​NumPy stosuje je do każdego elementu bez jawnego Python pętla.

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ą shape Atrybut, do którego dostęp uzyskuje się poprzez dołączenie go do nazwy tablicy. W ten sam sposób można sprawdzić typ za pomocą dtype.

import numpy as np
a = np.array([1,2,3])
print(a.shape)
print(a.dtype)

(3,)
int64

Liczba całkowita to wartość bez przecinka. Jeśli utworzysz tablicę z liczbami dziesiętnymi, typ danych zmieni się na float.

#### Different type
b = np.array([1.1,2.0,3.2])
print(b.dtype)

float64

2-wymiarowa tablica

Możesz dodać wymiar, umieszczając przecinek w nawiasach.

Należy pamiętać, że krotki wewnętrzne muszą znajdować się wewnątrz zewnętrznych nawiasów [].

### 2 dimension
c = np.array([(1,2,3),
              (4,5,6)])
print(c.shape)
(2, 3)

3-wymiarowa tablica

Wyższe wymiary można skonstruować w ten sam 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() or np.zeros jest Python funkcja służąca do tworzenia macierzy wypełnionej zerami. numpy.zeros() jest przydatne, gdy trzeba zainicjować wagi podczas pierwszej iteracji w TensorFlow lub skonfigurować bufory zastępcze dla innych zadań statystycznych.

Funkcja numpy.zeros() Składnia

numpy.zeros(shape, dtype=float, order='C')

Python numpy.zeros() Parametry

Tutaj,

  • Shape: kształt tablicy zer NumPy.
  • Typ D: typ danych elementów. Jest opcjonalny, a jego wartość domyślna to float64.
  • Zamówienie:domyślnie jest C, który jest układem wierszowo-głównym używanym przez 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(). tworzy macierz wypełnioną jedynkami. numpy.ones() in Python jest użyteczny, gdy inicjujesz wagi podczas pierwszej iteracji w TensorFlow i przy innych zadaniach statystycznych.

Python numpy.ones() Składnia

numpy.ones(shape, dtype=float, order='C')

Python Parametry numpy.ones().

Tutaj,

  • Shape: kształt np.ones Python Szyk.
  • Typ D: typ danych elementów. Jest opcjonalny, a jego wartość domyślna to float64.
  • Zamówienie:domyślnie jest C, który jest układem rzędowym.

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 Zmienia kształt tablicy bez zmiany jej danych. Może być konieczne przekształcenie danych z formatu szerokiego na długi lub przejście z wektora 1D do macierzy 2D przed przekazaniem ich do modelu. np.reshape funkcja obsługuje to w jednym wywołaniu.

Składnia np.reshape()

numpy.reshape(a, newShape, order='C')

Tutaj,

a:tablica, którą chcesz zmienić.

nowy kształt:nowy pożądany kształt.

Zamówienie:domyślnie jest C, układ rzędowy.

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 Zwraca kopię tablicy skondensowanej do jednego wymiaru. Podczas pracy z sieciami neuronowymi, takimi jak sieci konwolucyjne, często zachodzi potrzeba spłaszczenia tensora obrazu przed przekazaniem go do gęstej warstwy. np.flatten() funkcja obsługuje to w jednym wywołaniu.

Składnia np.flatten()

numpy.flatten(order='C')

Tutaj,
Zamówienie:domyślnie jest C, układ rzędowy.

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 Python Funkcja służąca do poziomego układania sekwencji tablic wejściowych w jedną tablicę. Z hstack(), dodajesz dane wzdłuż osi kolumn. To bardzo wygodna funkcja w NumPy, gdy trzeba scalić wektory cech obok siebie.

Uczmy się hstack in Python z przykładem.

Przykład:

## Horizontal 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 Python Funkcja służąca do pionowego układania sekwencji tablic wejściowych w jedną tablicę. Z vstack(), dodajesz dane wzdłuż osi wiersza, co jest przydatne, gdy chcesz połączyć partie próbek.

Przyjrzyjmy się temu 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 oraz hstack, przyjrzyjmy się przykładowi generującemu liczby losowe w NumPy.

Generuj losowo Numbers za pomocą NumPy

Aby wygenerować liczby losowe z rozkładu Gaussa, użyj:

numpy.random.normal(loc, scale, size)

Tutaj,

  • Miejsce: średnia. Środek rozkładu.
  • Skala: odchylenie standardowe.
  • Rozmiar: liczba zwróconych próbek.

Przykład:

## Generate random numbers from a 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 wykreślić rozkład, będzie on wyglądał podobnie do poniższego wykresu.

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

Należy pamiętać, że nowszy kod coraz częściej korzysta z nowoczesnego interfejsu API generatora, np.random.default_rng(), który jest zalecanym zamiennikiem starszej wersji np.random.normal wywołania w NumPy 2.x.

Funkcja tablicy NumPy

asarray() Funkcja konwertuje dane wejściowe na tablicę. Dane wejściowe mogą być listą, krotką, tablicą obiektów (ndarray) lub podobną sekwencją.

Składnia:

numpy.asarray(data, dtype=None, order=None)

Tutaj,

dane: dane, które chcesz przekonwertować na tablicę.

dtyp: Opcjonalnie. Jeśli nie określono, typ danych jest wnioskowany na podstawie danych wejściowych.

Zamówienie:domyślnie jest C, układ wierszowo-główny. Inną opcją jest F (Fortrakolumna główna typu n).

Przykład:

Rozważmy poniższą macierz 2D z czterema wierszami i czterema kolumnami, wypełnioną wartością 1.

import numpy as np
A = np.matrix(np.ones((4,4)))

Jeśli próbujesz zmienić wartość w macierzy poprzez np.array, oryginał nie jest modyfikowany. Powód jest taki, że np.array tworzy kopię macierzy.

np.array(A)[2]=2
print(A)
[[1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]]

Macierz pozostaje niezmieniona. Użyj asarray gdy chcesz zmodyfikować oryginalną tablicę w miejscu. Zobaczmy, co się stanie, gdy ustawisz trzeci wiersz na wartość 2.

np.asarray(A)[2]=2
print(A)

Code Wyjaśnienie:

np.asarray(A) konwertuje macierz A do widoku tablicy.

[2] wybiera trzeci wiersz.

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 tablicę ndarray zawierającą równomiernie rozmieszczone wartości w zdefiniowanym przedziale. Na przykład, aby utworzyć wartości od 1 do 10, możesz wywołać np.arange() in Python.

Składnia:

numpy.arange(start, stop, step, dtype)

Python Parametry NumPy:

  • Rozpocznij: początek interwału dla np.arange in Python.
  • Stop:koniec interwału.
  • Krok : odstęp między wartościami. Domyślny krok to 1.
  • Typ D:typ tablicy wyjściowej dla NumPy arange.

Przykład:

import numpy as np
np.arange(1, 11)

Wyjście:

array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])

Przykład:

Aby zmienić krok w tym NumPy arange Na przykład, dodaj trzecią liczbę do nawiasów. Zmieni to rozmiar kroku.

import numpy as np
np.arange(1, 14, 4)

Wyjście:

array([ 1,  5,  9, 13])

Funkcja NumPy Linspace

linspace zwraca równomiernie rozmieszczone próbki pomiędzy dwoma punktami końcowymi.

Składnia:

numpy.linspace(start, stop, num, endpoint)

Tutaj,

  • Rozpocznij:wartość początkowa sekwencji.
  • Stop: wartość końcowa sekwencji.
  • Ilość: liczba próbek do wygenerowania. Domyślnie 50.
  • Punkt końcowy: gdyby True (Domyślne) stop jest ostatnią wartością. Jeśli False, stop nie jest zawarty.

Przykład:

Można go na przykład użyć do utworzenia 10 równomiernie rozmieszczonych wartości od 1 do 5.

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żeli nie chcesz uwzględniać ostatniej cyfry w przedziale, ustaw endpoint do 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 równomiernie rozmieszczone liczby w skali logarytmicznej. logspace ma takie same parametry jak 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 pojedynczego elementu 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

Podział danych jest prosty dzięki NumPy. Podzielimy macierz e, w Python, aby zwrócić wiersze lub kolumny, użyj nawiasów kwadratowych.
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 NumPy pierwszy indeks tablicy zaczyna się od 0.

## First row
print('First row:', e[0])

## Second row
print('Second row:', e[1])

Wyjście:

First row: [1 2 3]
Second row: [4 5 6]

In Python, jak w wielu innych językach,

  • Wartość przed przecinkiem oznacza wiersze.
  • Wartość po przecinku oznacza kolumny.
  • Jeśli chcesz wybrać kolumnę, dodaj : przed indeksem kolumny.
  • : oznacza, że ​​chcesz pobrać wszystkie wiersze z wybranej kolumny.
print('Second column:', e[:,1])
Second column: [2 5]

Aby zwrócić dwie pierwsze wartości drugiego wiersza, użyj : aby zaznaczyć wszystkie kolumny do drugiego indeksu.

## Second Row, two values
print(e[1, :2])
[4 5]

Funkcje statystyczne w Python

NumPy oferuje użyteczny zestaw funkcji statystycznych do znajdowania wartości minimalnej, maksymalnej, percentyla, odchylenia standardowego, wariancji i innych wartości z danej tablicy. Poniżej wymieniono najpopularniejsze z nich.

NumPy zawiera rozbudowane narzędzia pomocnicze do statystyk, podsumowane w tabeli.

Funkcjonować Odrętwiały
Min np.min()
Max np.max()
Oznaczać np. średnia()
Mediana np.mediana()
Odchylenie standardowe np.std()

Rozważmy 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 statystycznych 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?

numpy.dot to potężna funkcja do obliczeń macierzowych. Na przykład, możesz obliczyć iloczyn skalarny za pomocą np.dot. numpy.dot zwraca iloczyn skalarny a oraz bi obsługuje tablice 1D i 2D. W przypadku danych wejściowych 2D wykonuje mnożenie macierzy.

Składnia:

numpy.dot(x, y, out=None)

Parametry

Tutaj,

x, y: tablice wejściowe. x oraz y oba powinny być 1D lub 2D np.dot() działać jako iloczyn skalarny lub mnożenie macierzy.

na zewnątrz: opcjonalny argument wyjściowy używany do przechwycenia wyniku. W przeciwnym razie zwracana jest tablica ndarray.

Zwroty

Funkcja numpy.dot() zwraca iloczyn skalarny dwóch tablic x oraz yZwraca skalar, gdy oba są 1D, w przeciwnym razie zwraca tablicę. Jeśli out jest podana, to zwracana jest tablica.

Podnosi

Iloczyn skalarny w Python podnosi A ValueError jeśli ostatni wymiar x nie pasuje do drugiego od końca wymiaru 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

NumPy matmul() Funkcja zwraca iloczyn macierzowy dwóch tablic. Oto jak to działa.

1) W przypadku tablic 2D zwraca normalny iloczyn macierzy.

2) W przypadku wymiarów większych niż 2, iloczyn traktowany jest jako stos macierzy.

3) Najpierw tablicę 1D przekształca się w macierz, a następnie oblicza się iloczyn.

Infiks @ operator, dostępny od Python 3.5 jest skrótem od matmul i jest szeroko stosowany w nowoczesnym kodzie.

Składnia:

numpy.matmul(x, y, out=None)

Tutaj,

x, y:tablice wejściowe. Skalary nie są dozwolone.

na zewnątrz: Parametr opcjonalny. Zwykle dane wyjściowe są przechowywane w tablicy ndarray.

Przykład:

W ten sam sposób możesz obliczyć mnożenie macierzy za pomocą np.matmul.

### Matmul: matrix 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

Jeśli musisz obliczyć wyznacznik macierzy, użyj np.linalg.det(). NumPy zajmie się wymiarami za Ciebie.

Przykład:

## Determinant 2*2 matrix
### 5*8-7*6
np.linalg.det(i)

Wyjście:

-2.000000000000005

Wyjaśnienie rozgłaszania NumPy

Rozgłaszanie to reguła, która pozwala NumPy wykonywać obliczenia arytmetyczne na tablicach o różnych kształtach bez kopiowania danych. Po dodaniu skalara do wektora jednowymiarowego lub wektora jednowymiarowego do macierzy dwuwymiarowej, NumPy rozciąga mniejszy operand wzdłuż brakujących osi, tak aby kształty się ze sobą pokrywały. Pozwala to uniknąć jawnego Python pętle i jest jednym z głównych powodów, dla których kod NumPy sprawia wrażenie szybkiego i zwięzłego.

Dwa kształty są zgodne do transmisji, gdy porównując je od prawej do lewej, każda para wymiarów jest równa lub jeden z nich jest równy 1. Na przykład macierz kształtów (3, 4) transmisje przeciwko rzędowi kształtów (4,) lub kolumna kształtu (3, 1)Ta sama logika napędza normalizację w uczeniu maszynowym, gdzie subskrybujesztracwektor średniej dla każdej cechy z partii próbek w jednym wierszu. Model nadawania jest również modelem koncepcyjnym używanym przez biblioteki tensorowe, takie jak Py.Torch, TensorFlow i JAX, dzięki czemu zasady, których się tutaj uczysz, można przenieść bezpośrednio do kodu GPU.

Jak NumPy wspomaga sztuczną inteligencję i uczenie maszynowe

NumPy jest obecny w niemal każdym nowoczesnym systemie Python Stos AI. PyTorTensory ch, tensory chętne TensorFlow i tablice JAX udostępniają te same funkcje nadawania, krojenia i ponownego kształtowaniaping API, którego nauczyłeś się na tablicach nDarray NumPy. Wiele samouczków nadal wprowadza wstępnie przetworzone tablice NumPy do pętli treningowych modelu, a frameworki akceptują je bez konwersji.

Trzy konkretne wzorce pokazują, jak NumPy łączy się z dzisiejszymi systemami sztucznej inteligencji. Po pierwsze, inżynierowie danych przekształcają surowe funkcje w tablice NumPy, a następnie przekazują je do potoków scikit-learn lub zestawów danych Hugging Face. Po drugie, badacze używają NumPy jako bazy dla procesorów, a następnie zastępują je CuPy, które zapewnia niemal identyczne API, ale działa na procesorach graficznych NVIDIA z wykorzystaniem CUDA. Po trzecie, JAX bazuje na API NumPy, dodając automatyczne różnicowanie i kompilację just-in-time, dzięki czemu ten sam kod, który działa na laptopie, może działać na procesorach TPU w chmurze. Wnioskiem jest to, że umiejętności związane z tablicami, które zdobędziesz dzięki NumPy, wnoszą do każdego głównego zestawu narzędzi do głębokiego uczenia się, co czyni ten samouczek przydatnym krokiem na drodze do rozwoju sztucznej inteligencji.

FAQ

NumPy oferuje szybkie tablice n-wymiarowe, wektoryzację, algebrę liniową, losowe próbkowanie i transformaty Fouriera. Inżynierowie i analitycy danych wykorzystują go do obliczeń numerycznych, przetwarzania obrazów i sygnałów, statystyki, a także jako podstawę dla bibliotek wyższego poziomu, takich jak pandas, scikit-learn i SciPy.

Tablica NumPy przechowuje elementy jednego, ustalonego typu danych w ciągłym bloku pamięci, co przyspiesza wykonywanie obliczeń wektorowych. Python listy mogą przechowywać dowolne obiekty, obsługują mieszane typy i opierają się na wolniejszych pętlach dla każdego elementu, dzięki czemu są elastyczne, ale znacznie mniej wydajne w przypadku dużych obciążeń numerycznych.

Wersja NumPy 2.0, wydana w czerwcu 2024 r., zachowuje stabilność podstawowego interfejsu API tablicowego, ale usuwa dawno przestarzałe aliasy, takie jak np.float oraz np.inti zaostrza zasady promocji typów. Większość kodu produkcyjnego wymaga jedynie drobnych poprawek. Przypnij numpy<2 jeśli zależność nie została jeszcze zaktualizowana.

PyTorch i TensorFlow modelują swoje obiekty tensorowe na tablicach nDarray NumPy. Mają ten sam kształt, semantykę rozgłaszania i cięcia, a oba akceptują tablice NumPy jako dane wejściowe. Umiejętności zdobyte w NumPy przekładają się bezpośrednio na budowanie sieci neuronowych, pętli treningowych i potoków wstępnego przetwarzania tensorów.

Standardowa wersja NumPy działa na procesorze. Do akceleracji GPU należy użyć CuPy, które odzwierciedla API NumPy na urządzeniach NVIDIA CUDA, lub JAX, który dodaje automatyczne różnicowanie i kompilację just-in-time dla GPU i TPU. Oba pozwalają na ponowne wykorzystanie większości istniejącego kodu NumPy z minimalną liczbą przeróbek dla obciążeń AI.

Anaconda domyślnie dostarcza NumPy. W przeciwnym razie uruchom pip install numpy or conda install -c anaconda numpyAby uaktualnić istniejącą instalację do NumPy 2.x, uruchom pip install --upgrade numpy. Sprawdź aktywną wersję za pomocą print(np.__version__) wewnątrz Python.

Funkcja rozgłaszania pozwala NumPy operować na tablicach o różnych kształtach bez kopiowania danych. Mniejsza tablica jest wirtualnie rozciągana, aby dopasować ją do większej, gdy wymiary są zgodne. Umożliwia to tworzenie zwięzłych wyrażeń do normalizacji, skalowania i inżynierii cech w procesach uczenia maszynowego.

Podsumuj ten post następująco: