Python NumPy oktatóanyag kezdőknek

⚡ Okos összefoglaló

A NumPy az alapvető Python numerikus számítástechnikai könyvtár, tömbök, mátrixok, lineáris algebra és véletlenszerű mintavételezés kezelése. Ez a NumPy oktatóanyag végigvezeti a telepítésen, tömbök létrehozásán, átméretezésén és egyéb műveleteken.ping, szeletelés, statisztika és mátrixmatematika futtatható programmal Python példák.

  • Alapfelhasználás: Gyors N-dimenziós tömbök és vektorizált matematika Python.
  • 🇧🇷 Főbb funkciók: nullák, egyesek, átalakulás, hstack, pont, linspace.
  • ???? Foundations: Lineáris algebra, műsorszórás, statisztika, szeletelés.
  • 🚀 Jelenlegi verzió: A NumPy 2.x (megjelent 2024 júniusában) mostantól stabil.
  • 🤖 MI használata: Py gerinceTorch, TensorFlow, JAX és CuPy tenzorok.

Python NumPy bemutatója

Miben található a NumPy? Python?

numpy nyílt forráskódú Python matematikai, tudományos, mérnöki és adattudományi programozáshoz használt könyvtár. Ez egy nagyon hasznos könyvtár matematikai és statisztikai műveletekhez a PythonTökéletesen működik többdimenziós tömbökkel és mátrixszorzással, és könnyen integrálható a C/C++ és a Fortran.

Bármely tudományos projekthez a NumPy a megfelelő eszköz. N-dimenziós tömbök, lineáris algebra, véletlenszám-generálás, Fourier-transzformációk és egyebek kezelésére készült.

NumPy ad Python első osztályú támogatás többdimenziós tömbökhöz és mátrixokhoz, valamint számos matematikai művelet, amelyek ezeken dolgoznak. Ebben az útmutatóban áttekintjük azokat a lényeges függvényeket, amelyeket ismernie kell, mielőtt továbblépnénk a „” című oktatóanyagra.TensorFlow. "

Miért használja a NumPy-t?

A NumPy memóriahatékony, így nagy mennyiségű numerikus adatot könnyebben képes kezelni, mint a tiszta Python listák. Mátrixok szorzásához és újraosztásához is nagyon kényelmes.ping, és gyors, mert a nehéz munkát lefordított C rutinokra delegálják. Valójában olyan könyvtárak, mint a TensorFlow, a PyTorA ch és a Scikit-learn a NumPy tömböket használja a mátrixmatematika elvégzéséhez a háttérrendszerében, ami a NumPy-t a legtöbb modern adattudományi és mesterséges intelligencia munkafolyamat csendes munkahordozójává teszi.

A NumPy telepítése

A NumPy könyvtár telepítéséhez tekintse meg az oktatóanyagunkat A TensorFlow telepítése. A NumPy alapértelmezés szerint telepítve van az Anacondával.

Abban a ritka esetben, ha a NumPy nincs telepítve, használja az alábbi lehetőségek bármelyikét.

A NumPy-t az Anaconda segítségével telepítheti:

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

A Pip felhasználók egyetlen paranccsal telepíthetnek vagy frissíthetnek:

pip install --upgrade numpy

Importálja a NumPy-t és ellenőrizze a verziót

A numpy importálásának parancsa a következő:

import numpy as np

A fenti sor átnevezi a NumPy névteret a következőre: npEz a gyorsbillentyű lehetővé teszi, hogy a NumPy függvények, metódusok és attribútumok elé a következőt illessze be: np. helyett typing numpy., és ez a NumPy ökoszisztémában megtalálható szabványos konvenció.

A NumPy telepített verziójának ellenőrzéséhez használja az alábbi parancsot:

print(np.__version__)

output:

2.1.3

A NumPy 2.0 2024 júniusában jelent meg, és ez a jelenlegi stabil fő sorozat. Ha a projekted továbbra is az 1.x API-tól függ, akkor rögzítsd a következőhöz: numpy<2 a követelményfájlban, mivel néhány korábbi álnév, mint például np.float eltávolításra kerültek a 2.0-s verzióban.

Mi az a Python NumPy Array?

A NumPy tömbök kicsit úgy néznek ki, mint Python első pillantásra listák, de nagyon eltérően viselkednek. Azoknak az olvasóknak, akik még nem ismerik a témát, tisztázzuk, mi is az az ndarray, és miért fontos.

Ahogy a neve is sugallja, a NumPy tömb a NumPy könyvtár központi adatszerkezete. Maga a név a „Numeric” (Numerikus) rövidítése. Python” vagy „Numerical Python”, és az ndarray egy homogén, fix méretű memóriablokk, ismert alakkal és adattípussal.

NumPy tömb létrehozása

A NumPy-ban a tömb létrehozásának legegyszerűbb módja, ha egy Python Lista.

myPythonList = [1,9,8,3]

konvertálása Python listát NumPy tömbbe a következő használatával: np.array.

numpy_array_from_list = np.array(myPythonList)

Jelenítse meg a tömb tartalmát.

numpy_array_from_list

output:

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

A gyakorlatban nem kell deklarálni a Python lista első. A két lépés kombinálható.

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

JEGYZET: A NumPy dokumentációja is említi np.ndarray, de np.array a mindennapi használatra ajánlott gyári funkció.

Ugyanígy létrehozhatsz egy NumPy tömböt egy tuple-ből is.

Matematikai Operaegy tömbön

Matematikai műveleteket végezhet, például összeadást, részfelosztásttracosztás, szorzás és osztás egy tömbön. A szintaxis a tömb neve, majd az operátor (+, -, *, /), majd az operandus következik. Ezek a műveletek vektorizáltak, ami azt jelenti, hogy a NumPy minden elemre alkalmazza őket explicit Python hurok.

Példa:

numpy_array_from_list + 10

output:

array([11, 19, 18, 13])

Ez a művelet 10-et ad hozzá a NumPy tömb minden eleméhez.

A tömb alakja

Egy tömb alakját a következővel ellenőrizheted: shape attribútum, amelyhez a tömb nevéhez hozzáfűzéssel lehet hozzáférni. Ugyanígy ellenőrizheti a típust a következővel: dtype.

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

(3,)
int64

Az egész szám egy tizedesvessző nélküli érték. Ha tizedesjegyeket tartalmazó tömböt hozol létre, a dtype (dtípus) lebegőpontosra változik.

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

float64

2 dimenziós tömb

A zárójelben lévő vesszővel hozzáadhat dimenziót.

Megjegyzendő, hogy a belső tuple-eknek a külső zárójeleken belül kell lenniük. [].

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

3 dimenziós tömb

A magasabb méretek ugyanígy konstruálhatók.

### 3 dimension
d = np.array([
    [[1, 2,3],
        [4, 5, 6]],
    [[7, 8,9],
        [10, 11, 12]]
])
print(d.shape)
(2, 2, 3)
Objektív Code
Hozzon létre tömböt tömb([1,2,3])
nyomtassa ki az alakzatot tömb([.]).alak

Mi az a numpy.zeros()?

numpy.zeros() or np.zeros egy olyan Python nullákkal kitöltött mátrix létrehozására használt függvény. numpy.zeros() akkor hasznos, ha a TensorFlow első iterációja során inicializálni kell a súlyokat, vagy helyőrző puffereket kell beállítani más statisztikai feladatokhoz.

numpy.zeros() függvény Szintaxis

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

Python numpy.zeros() Paraméterek

Itt,

  • Alak: a NumPy nulla tömb alakja.
  • Dtípus: az elemek adattípusa. Opcionális, az alapértelmezett érték pedig float64.
  • Megrendelés: az alapértelmezett érték C, amely a által használt sor-fő elrendezés numpy.zeros() in Python.

Python numpy.zeros() Példa

import numpy as np
np.zeros((2,2))

output:

array([[0., 0.],
          [0., 0.]])

Példa a numpy nullára adattípussal

import numpy as np
np.zeros((2,2), dtype=np.int16)

output:

array([[0, 0],
         [0, 0]], dtype=int16)

Mi az a numpy.ones()?

np.ones() függvény egyesekkel töltött mátrixot hoz létre. numpy.ones() in Python hasznos a súlyok inicializálásakor a TensorFlow első iterációja során, valamint más statisztikai feladatokhoz.

Python numpy.ones() Szintaxis

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

Python numpy.ones() Paraméterek

Itt,

  • Alak: az np.ones alakja Python Sor.
  • Dtípus: az elemek adattípusa. Opcionális, az alapértelmezett érték pedig float64.
  • Megrendelés: az alapértelmezett érték C, ami a sor-fő elrendezés.

Python numpy.ones() 2D tömb adattípus példával

import numpy as np
np.ones((1,2,3), dtype=np.int16)

output:

array([[[1, 1, 1],
       [1, 1, 1]]], dtype=int16)

numpy.reshape() függvény be Python

Python NumPy Reshape megváltoztatja egy tömb alakját az adatainak megváltoztatása nélkül. Előfordulhat, hogy az adatokat széles formátumról hosszú formátumra kell átalakítani, vagy 1D vektorról 2D mátrixra kell váltani, mielőtt betáplálná egy modellbe. A np.reshape függvény egyetlen hívásban kezeli ezt.

Az np.reshape() szintaxisa

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

Itt,

a: az átformálni kívánt tömb.

newShape: az új kívánt alakzat.

Megrendelés: az alapértelmezett érték C, a sor-szak elrendezés.

Példa a NumPy átformálására

import numpy as np
e = np.array([(1,2,3), (4,5,6)])
print(e)
e.reshape(3,2)

output:

 // Before reshape
[[1 2 3]
 [4 5 6]]
//After Reshape
array([[1, 2],
	[3, 4],
	[5, 6]])

numpy.flatten() in Python

Python NumPy Flatten visszaadja a tömb egy dimenzióba omlott másolatát. Amikor neurális hálózatokkal, például convnetekkel dolgozunk, gyakran szükség van egy képtenzor lapítására, mielőtt átadnánk egy sűrű rétegnek. np.flatten() A függvény ezt egyetlen hívásban kezeli.

Az np.flatten() szintaxisa

numpy.flatten(order='C')

Itt,
Megrendelés: az alapértelmezett érték C, a sor-szak elrendezés.

Példa a NumPy Flattenre

e.flatten()

output:

array([1, 2, 3, 4, 5, 6])

Mi az a numpy.hstack() Python?

numpy.hstack egy olyan Python függvény, amely bemeneti tömbök sorozatainak vízszintes egymásra rakására szolgál egyetlen tömbbe. hstack(), az oszlop tengelye mentén fűzöd hozzá az adatokat. Ez egy nagyon praktikus segítő a NumPy-ban, amikor jellemzővektorokat kell egymás mellé egyesíteni.

Tanuljunk hstack in Python egy példával.

Példa:

## 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)))

output:

Horizontal Append: [1 2 3 4 5 6]

Mi az a numpy.vstack() Python?

numpy.vstack egy olyan Python függvény, amely bemeneti tömbök sorozatainak függőleges egymásra rakására szolgál egyetlen tömbbe. vstack(), az adatokat a sor tengelye mentén fűzi hozzá, ami akkor hasznos, ha több minta-köteget szeretne egyesíteni.

Vizsgáljuk meg egy példával.

Példa:

## 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)))

output:

Vertical Append: [[1 2 3]
 [4 5 6]]

Miután tanulmányoztam a NumPy-t vstack és a hstack, nézzünk egy példát, amely véletlenszámokat generál a NumPy-ban.

Véletlenszerű generálás Numbers a NumPy használatával

Gauss-eloszlásból véletlenszámok generálásához használja a következőt:

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

Itt,

  • Loc: az átlag. Az eloszlás középpontja.
  • Skála: a szórás.
  • Méret: a visszaküldött minták száma.

Példa:

## 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]

Ha ábrázoljuk, az eloszlás hasonló a következő diagramhoz.

Példa véletlenszerű generálására Numbers a NumPy használatával
Példa véletlenszerű generálására Numbers a NumPy használatával

Vegye figyelembe, hogy az újabb kód egyre inkább a modern generátor API-t használja, np.random.default_rng(), amely a régi verzió ajánlott helyettesítője np.random.normal hívások a NumPy 2.x-ben.

NumPy Asarray függvény

Az asarray() A függvény egy bemenetet tömbbé alakít. A bemenet lehet lista, tuple, ndarray vagy hasonló sorozat.

Syntax:

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

Itt,

Az információk szétdarabolódása: tömbbé konvertálni kívánt adatok.

dtype: opcionális. Ha nincs megadva, az adattípus a bemeneti adatokból lesz kikövetkeztetve.

Megrendelés: az alapértelmezett érték C, a sor-fő elrendezés. A másik lehetőség a következő: F (Fortran-stílusú fő oszlop).

Példa:

Tekintsük a következő négy soros és négy oszlopos 2D mátrixot, amelyet 1-gyel töltünk ki.

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

Ha megpróbálsz megváltoztatni egy értéket a mátrixban a következőképpen: np.array, az eredetit nem módosítják. Ennek az az oka, hogy np.array másolatot készít a mátrixról.

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

A mátrix változatlan marad. Használat asarray amikor a helyén szeretnéd módosítani az eredeti tömböt. Nézzük meg, mi történik, ha a harmadik sort 2-re állítod.

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

Code Magyarázat:

np.asarray(A) átalakítja a mátrixot A egy tömbnézetbe.

[2] kijelöli a harmadik sort.

output:

[[1. 1. 1. 1.]
      [1. 1. 1. 1.]
      [2. 2. 2. 2.] # new value
      [1. 1. 1. 1.]]

Mi az a numpy.arange()?

numpy.arange() egy beépített NumPy függvény, amely egy ndarray-t ad vissza, amely egyenletesen elosztott értékeket tartalmaz egy meghatározott intervallumon belül. Például 1-től 10-ig terjedő értékek létrehozásához meghívhatja a np.arange() in Python.

Syntax:

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

Python NumPy sorparaméterek:

  • Rajt: az intervallum kezdete a következőhöz: np.arange in Python.
  • megáll: az intervallum vége.
  • Lépés: értékek közötti térköz. Az alapértelmezett lépésköz 1.
  • Dtípus: a NumPy kimeneti tömbjének típusa arange.

Példa:

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

output:

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

Példa:

A lépés megváltoztatásához ebben a NumPy-ban arange Például adjunk hozzá egy harmadik számot a zárójelekhez. Ez megváltoztatja a lépésközt.

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

output:

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

NumPy Linspace függvény

linspace két végpont között egyenletesen elosztott mintákat ad vissza.

Syntax:

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

Itt,

  • Rajt: a sorozat kezdőértéke.
  • megáll: a sorozat végértéke.
  • -Ban: a generálandó minták száma. Az alapértelmezett érték 50.
  • Endpoint: ha True (Alapértelmezett) stop az utolsó érték. Ha False, stop nem tartalmazza.

Példa:

Például 10 egyenletesen elosztott érték létrehozására használható 1-től 5-ig.

import numpy as np
np.linspace(1.0, 5.0, num=10)

output:

array([1.        , 1.44444444, 1.88888889, 2.33333333, 2.77777778,       3.22222222, 3.66666667, 4.11111111, 4.55555556, 5.        ])

Ha nem szeretnéd belefoglalni az intervallum utolsó számjegyét, állítsd be endpoint nak nek False.

np.linspace(1.0, 5.0, num=5, endpoint=False)

output:

array([1. , 1.8, 2.6, 3.4, 4.2])

LogSpace NumPy függvény be Python

logspace logaritmikus skálán egyenletesen elosztott számokat ad vissza. logspace ugyanazokat a paramétereket osztja meg, mint np.linspace.

Syntax:

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

Példa:

np.logspace(3.0, 4.0, num=4)

output:

array([ 1000. ,  2154.43469003,  4641.58883361, 10000.        ])

Végül, ha egy tömb egyetlen elemének memóriaméretét szeretné ellenőrizni, használhatja a következőt: itemsize.

x = np.array([1,2,3], dtype=np.complex128)
x.itemsize

output:

16

Minden elem 16 bájtot vesz igénybe.

Indexelés és szeletelés Python

Az adatok szeletelése egyszerű a NumPy segítségével. A mátrixot fogjuk szeletelni. e. -ban Python, szögletes zárójeleket használ a sorok vagy oszlopok visszaadásához.
Példa:

## Slice
import numpy as np
e = np.array([(1,2,3), (4,5,6)])
print(e)
[[1 2 3]
 [4 5 6]]

Ne feledd, hogy a NumPy-ban az első tömbindex 0-val kezdődik.

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

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

output:

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

In Python, mint sok más nyelven,

  • A vessző előtti érték a sorokat jelöli.
  • A vessző utáni érték az oszlopokat jelöli.
  • Ha egy oszlopot szeretne kiválasztani, adja hozzá : az oszlopindex előtt.
  • : azt jelenti, hogy a kiválasztott oszlop összes sorát szeretnéd.
print('Second column:', e[:,1])
Second column: [2 5]

A második sor első két értékének visszaadásához használja a következőt: : az összes oszlop kijelöléséhez a második indexig.

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

Statisztikai függvények in Python

A NumPy hasznos statisztikai függvényeket biztosít egy adott tömb minimumának, maximumának, percentilisének, szórásának, varianciájának és egyebeknek a megtalálásához. A leggyakoribbakat az alábbiakban soroljuk fel.

A NumPy robusztus statisztikai segítőkkel rendelkezik, amelyeket a táblázat foglal össze.

Funkció Hülye
Min np.min()
max np.max()
Jelenteni np.mean()
Középső np.median()
Szabvány eltérés np.std()

Tekintsük a következő tömböt:

Példa:

import numpy as np
normal_array = np.random.normal(5, 0.5, 10)
print(normal_array)

output:

[5.56171852 4.84233558 4.65392767 4.946659   4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]

NumPy statisztikai függvények példája

### 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))

output:

4.467042435266913
5.612113171990201
4.934841002270593
4.846995625786663
0.3875019367395316

Mi az a numpy dot termék?

numpy.dot egy hatékony függvény mátrixszámításhoz. Például kiszámíthatja a skaláris szorzatot a következővel: np.dot. numpy.dot a skaláris szorzatát adja vissza a és a b, és mind 1D, mind 2D tömböket kezel. 2D bemenetek esetén mátrixszorzást végez.

Syntax:

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

paraméterek

Itt,

x, y: bemeneti tömbök. x és a y mindkettőnek 1D-snek vagy 2D-snek kell lennie np.dot() skaláris szorzatként vagy mátrixszorzásként működjön.

ki: opcionális kimeneti argumentum, amely az eredmény rögzítésére szolgál. Ellenkező esetben egy ndarray kerül visszaadásra.

Visszatér

A funkció numpy.dot() két tömb skaláris szorzatát adja vissza x és a ySkalárt ad vissza, ha mindkettő 1D, egyébként tömböt ad vissza. Ha out ha adott, akkor a tömb visszaadásra kerül.

Az emelések

A skaláris szorzat Python felveti a ValueError ha az utolsó dimenzió x nem egyezik a második előtti dimenzióval y.

Példa:

## 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)

output:

14

Mátrixszorzás be Python

A NumPy matmul() A függvény két tömb mátrixszorzatát adja vissza. Így működik.

1) 2D tömbök esetén a mátrixok normál szorzatát adja vissza.

2) 2-nél nagyobb dimenziók esetén a szorzatot mátrixok halmazaként kezeljük.

3) Egy 1D tömböt először mátrixzá alakítunk, majd kiszámítjuk a szorzatot.

Az infixum @ operátor, elérhető ettől az időponttól: Python 3.5, a rövidítése a következőnek: matmul és széles körben használják a modern kódban.

Syntax:

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

Itt,

x, y: bemeneti tömbök. Skalárok nem engedélyezettek.

ki: opcionális paraméter. A kimenet általában egy ndarray-ben tárolódik.

Példa:

Ugyanígy kiszámíthatod a mátrixok szorzását is a következővel: 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)

output:

array([[19, 22],
            [43, 50]])

döntő

Ha egy mátrix determinánsát kell kiszámítanod, használd a következőt: np.linalg.det()A NumPy gondoskodik a méretekről.

Példa:

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

output:

-2.000000000000005

NumPy műsorszórás ismertetése

A szórásos szórás az a szabály, amely lehetővé teszi a NumPy számára, hogy aritmetikai műveleteket végezzen különböző alakú tömbökön adatok másolása nélkül. Amikor skalárt adunk egy 1D-s vektorhoz vagy egy 1D-s vektort egy 2D-s mátrixhoz, a NumPy a kisebb operandust a hiányzó tengelyek mentén nyújtja, hogy az alakzatok egy vonalba kerüljenek. Ez elkerüli az explicit... Python ciklusok, és ez az egyik fő oka annak, hogy a NumPy kód gyorsnak és tömörnek tűnik.

Két alakzat kompatibilis a szórással, ha jobbról balra összehasonlítva mindkét dimenziópár egyenlő, vagy az egyikük 1-gyel egyenlő. Például egy alakzatmátrix (3, 4) sugároz egy alakzatsor ellen (4,) vagy egy alakú oszlop (3, 1)Ugyanez a logika vezérli a gépi tanulás normalizálását, ahol a részhalmazokat használod.tracta jellemzőnkénti átlagvektor egy mintavételi kötegből egyetlen sorban. A szórás a tenzorkönyvtárak, például a Py által használt fogalmi modell is.Torch, TensorFlow és JAX, így az itt tanult szabályok közvetlenül átvihetők a GPU-kódba.

Hogyan működteti a NumPy a mesterséges intelligenciát és a gépi tanulást?

A NumPy szinte minden modern eszköz alatt megtalálható Python MI-verem. PyTorA ch tenzorok, a TensorFlow eager tenzorok és a JAX tömbök ugyanazt a műsorszórást, szeletelést és újraosztást teszik lehetővé.ping API, amit a NumPy ndarrays-en tanultál. Sok oktatóanyag még mindig előre feldolgozott NumPy tömböket adagol a modell betanítási ciklusaiba, és a keretrendszerek nulla konverzióval elfogadják őket.

Három konkrét minta mutatja be, hogyan kapcsolódik a NumPy a mai mesterséges intelligencia munkához. Először is, az adatmérnökök nyers jellemzőket formálnak NumPy tömbökké, mielőtt átadnák azokat a scikit-learn folyamatoknak vagy a Hugging Face adatkészleteknek. Másodszor, a kutatók a NumPy-t CPU alapként használják, majd beépítik a CuPy-t, amely közel azonos API-t biztosít, de NVIDIA GPU-kon fut CUDA-n keresztül. Harmadszor, a JAX a NumPy API-ra épít az automatikus differenciálás és a just-in-time fordítás hozzáadásához, így ugyanaz a kód, amely a laptopon fut, futtatható a felhőben lévő TPU-kon is. A tanulság az, hogy a NumPy-val elsajátított tömbkezelési készségek minden nagyobb mélytanulási eszközkészletbe beépülnek, ami hasznos lépéssé teszi ezt az oktatóanyagot a mesterséges intelligencia fejlesztése felé vezető úton.

GYIK

A NumPy gyors N-dimenziós tömböket, vektorizált matematikát, lineáris algebrát, véletlenszerű mintavételezést és Fourier-transzformációkat biztosít. Mérnökök és adatkutatók numerikus számításokhoz, kép- és jelfeldolgozáshoz, statisztikához, valamint magasabb szintű könyvtárak, például a pandas, a scikit-learn és a SciPy tömbvázának gerinceként használják.

A NumPy tömb egy rögzített adattípusú elemeit egy összefüggő memóriablokkban tárolja, ami felgyorsítja a vektorizált matematikát. Python A listák tetszőleges objektumokat tárolnak, támogatják a vegyes típusokat, és lassabb elemenkénti ciklusokra támaszkodnak, így rugalmasak, de sokkal kevésbé hatékonyak nagy numerikus terhelések esetén.

A 2024 júniusában kiadott NumPy 2.0 stabilan tartja a központi tömb API-t, de eltávolítja a régóta elavult álneveket, mint például a np.float és a np.int, és szigorítja a típuselőléptetési szabályokat. A legtöbb éles kód csak kisebb módosításokat igényel. Pin numpy<2 ha egy függőség még nincs frissítve.

PyTorA ch és a TensorFlow NumPy ndarray-eken modellezik tenzor objektumaikat. Ugyanazt az alakzatot, műsorszórást és szeletelési szemantikájukat használják, és mindkettő NumPy tömböket fogad bemenetként. A NumPy-val elsajátított készségek közvetlenül átvihetők a neurális hálózatok építésébe, a betanítási ciklusokba és a tenzor előfeldolgozó folyamatokba.

A gyári NumPy a CPU-n fut. GPU-gyorsításhoz használd a CuPy-t, amely tükrözi az NVIDIA CUDA eszközökön található NumPy API-t, vagy a JAX-ot, amely autodiff és just-in-time fordítást biztosít a GPU-k és TPU-k számára. Mindkettő lehetővé teszi a legtöbb meglévő NumPy kód újrafelhasználását minimális átírással AI-munkaterhelések esetén.

Az Anaconda alapértelmezés szerint a NumPy-t szállítja. Egyébként futtassa a következőt: pip install numpy or conda install -c anaconda numpyEgy meglévő telepítés NumPy 2.x verzióra való frissítéséhez futtassa a következőt: pip install --upgrade numpy. Ellenőrizze az aktív verziót a következővel: print(np.__version__) belső Python.

A műsorszórás lehetővé teszi a NumPy számára, hogy különböző alakú tömbökön dolgozzon adatok másolása nélkül. A kisebb tömb virtuálisan megnyúlik, hogy illeszkedjen a nagyobbhoz, ha a dimenziók kompatibilisek. Ez biztosítja a gépi tanulási folyamatokban a normalizálás, skálázás és a jellemzőtervezés tömör kifejezéseit.

Foglald össze ezt a bejegyzést a következőképpen: