Python NumPy õpetus algajatele

⚡ Nutikas kokkuvõte

NumPy on alustala Python numbrilise arvutamise, massiivide, maatriksite, lineaaralgebra ja juhusliku valimi arvutamise teek. See NumPy õpetus tutvustab installimist, massiivide loomist, ümberjagamistping, viilutamine, statistika ja maatriksimatemaatika käivitatava programmiga Python näited.

  • Põhikasutus: Kiired N-mõõtmelised massiivid ja vektoriseeritud matemaatika Python.
  • ⚙️ Põhifunktsioonid: nullid, ühed, ümberkujundamine, hstack, punkt, linspace.
  • 📚 Foundations: Lineaaralgebra, ringhääling, statistika, tükeldamine.
  • 🚀 Praegune versioon: NumPy 2.x (välja antud juunis 2024) on nüüd stabiilne.
  • 🤖 Tehisintellekti kasutamine: Py selgroogTorch, TensorFlow, JAX ja CuPy tensorid.

Python NumPy õpetus

Milles on NumPy Python?

tuim on avatud lähtekoodiga Python matemaatilise, loodusteadusliku, inseneri- ja andmeteaduse programmeerimise teek. See on väga kasulik teek matemaatiliste ja statistiliste toimingute jaoks PythonSee töötab suurepäraselt mitmemõõtmeliste massiivide ja maatriksite korrutamisega ning integreerub hõlpsalt C/ programmeerimiskeelega.C++ ja Fortran.

NumPy on iga teadusprojekti jaoks õige tööriist. See on loodud N-mõõtmeliste massiivide, lineaaralgebra, juhuslike arvude genereerimise, Fourier' teisenduste ja muu jaoks.

NumPy annab Python esmaklassiline tugi mitmemõõtmelistele massiividele ja maatriksitele ning suur hulk matemaatilisi tehteid, mis neid mõjutavad. Selles juhendis vaatame üle olulised funktsioonid, mida peate teadma enne õpetuse juurde liikumist teemal 'TensorFlow. "

Miks kasutada NumPyt?

NumPy on mälusäästlik, seega saab see suurte numbriliste andmete mahtudega kergemini hakkama kui puhas Python loendid. See on väga mugav ka maatriksite korrutamiseks ja ümberjagamisekspingja see on kiire, kuna suurem töö on delegeeritud kompileeritud C-rutiinidele. Tegelikult on sellised teegid nagu TensorFlow, PyTorch ja Scikit-learn tuginevad oma tagaosas maatriksmatemaatika jaoks NumPy massiividele, mis teeb NumPyst vaikse tööhobuse enamiku tänapäevaste andmeteaduse ja tehisintellekti töövoogude all.

NumPy installimine

NumPy teegi installimiseks vaadake meie õpetust Kuidas installida TensorFlow. NumPy on Anacondaga vaikimisi installitud.

Harvadel juhtudel, kui NumPy pole installitud, kasutage mõnda allolevatest valikutest.

NumPy saate installida Anaconda abil:

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

Pipi kasutajad saavad installida või uuendada ühe käsuga:

pip install --upgrade numpy

Importige NumPy ja kontrollige versiooni

Numpy importimise käsk on järgmine:

import numpy as np

Ülaltoodud rida nimetab NumPy nimeruumi ümber npSee otsetee võimaldab teil NumPy funktsioonide, meetodite ja atribuutide ette lisada eesliite np. asemel typing numpy.ja see on standardne konventsioon, mida leiate kogu NumPy ökosüsteemist.

NumPy installitud versiooni kontrollimiseks kasutage alltoodud käsku:

print(np.__version__)

Väljund:

2.1.3

NumPy 2.0 saadeti välja juunis 2024 ja see on praegune stabiilne põhiseeria. Kui teie projekt sõltub endiselt 1.x API-st, kinnitage see numpy<2 teie nõuete failis, kuna mõned pärandaliased, näiteks np.float eemaldati versioonis 2.0.

Mis on a Python NumPy massiiv?

NumPy massiivid näevad välja natuke sellised Python esmapilgul loendid, kuid käituvad väga erinevalt. Lugejatele, kes pole teemaga tuttavad, selgitame, mis on ndarray ja miks see on oluline.

Nagu nimigi ütleb, on NumPy massiiv NumPy teegi keskne andmestruktuur. Nimi ise on lühend sõnadest „Numeric“ (numbriline). Python” või „Arv Python” ja ndarray on homogeenne, fikseeritud suurusega mäluplokk, millel on teadaolev kuju ja andmetüüp.

NumPy massiivi loomine

Lihtsaim viis massiivi loomiseks NumPy-s on alustada Python nimekiri.

myPythonList = [1,9,8,3]

teisendamine Python loend NumPy massiivi, kasutades np.array.

numpy_array_from_list = np.array(myPythonList)

Kuva massiivi sisu.

numpy_array_from_list

Väljund:

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

Praktikas ei ole vaja deklareerida a Python loend esimesena. Neid kahte sammu saab kombineerida.

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

MÄRKUS: NumPy dokumentatsioon mainib ka np.ndarray, Kuid np.array on igapäevaseks kasutamiseks soovitatav tehase funktsioon.

Samal viisil saate luua ka NumPy massiivi tuple'ist.

Matemaatiline Operamassiivi

Saate teha matemaatilisi tehteid, näiteks liitmist, alalõikutracMassiivi jagamine, korrutamine ja jagamine. Süntaks on massiivi nimi, millele järgneb operaator (+, -, *, /), millele järgneb operand. Need operatsioonid on vektoriseeritud, mis tähendab, et NumPy rakendab neid igale elemendile ilma selgesõnalise Python silmus

Näide:

numpy_array_from_list + 10

Väljund:

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

See toiming liidab NumPy massiivi igale elemendile 10.

Massiivi kuju

Massiivi kuju saab kontrollida käsuga shape atribuut, millele pääseb ligi massiivi nimele lisades. Samal viisil saate tüüpi kontrollida dtype.

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

(3,)
int64

Täisarv on väärtus ilma komakohata. Kui lood kümnendkohtadega massiivi, muutub andmetüüp (dtype) float-iks.

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

float64

2-mõõtmeline massiiv

Sulgudes oleva komaga saate lisada mõõtme.

Pane tähele, et sisemised tuupled peavad asuma välimiste nurksulgude sees. [].

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

3-mõõtmeline massiiv

Kõrgemaid mõõtmeid saab konstrueerida samal viisil.

### 3 dimension
d = np.array([
    [[1, 2,3],
        [4, 5, 6]],
    [[7, 8,9],
        [10, 11, 12]]
])
print(d.shape)
(2, 2, 3)
Eesmärk Code
Loo massiiv massiiv([1,2,3])
printida kujund massiiv([.]).kujund

Mis on numpy.zeros()?

numpy.zeros() or np.zeros on Python funktsioon, mida kasutatakse nullidega täidetud maatriksi loomiseks. numpy.zeros() on kasulik, kui teil on vaja TensorFlow's esimese iteratsiooni ajal kaalusid initsialiseerida või muude statistiliste ülesannete jaoks kohatäitepuhvreid seadistada.

numpy.zeros() funktsioon Süntaks

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

Python numpy.zeros() Parameetrid

Siin

  • kuju: NumPy nullmassiivi kuju.
  • Dtüüp: elementide andmetüüp. See on valikuline ja vaikeväärtus on float64.
  • järjekord: vaikimisi on C, mis on rida-pea paigutus, mida kasutab numpy.zeros() in Python.

Python numpy.zeros() Näide

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

Väljund:

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

Numpy nulli näide andmetüübiga

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

Väljund:

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

Mis on numpy.ones()?

np.ones() funktsioon loob ühelistega täidetud maatriksi. numpy.ones() in Python on kasulik kaalude initsialiseerimisel TensorFlow'i esimese iteratsiooni ajal ja muude statistiliste ülesannete puhul.

Python numpy.ones() Süntaks

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

Python numpy.ones() Parameetrid

Siin

  • kuju: np.one'ide kuju Python Array.
  • Dtüüp: elementide andmetüüp. See on valikuline ja vaikeväärtus on float64.
  • järjekord: vaikimisi on C, mis on rea-peamise paigutus.

Python numpy.ones() 2D massiiv andmetüübi näitega

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

Väljund:

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

numpy.reshape() funktsioon sisse Python

Python NumPy ümberkujundamine muudab massiivi kuju ilma andmeid muutmata. Enne mudelile edastamist peate võib-olla andmed laiast vormingust pikaks muutma või ühemõõtmelisest vektorist kahemõõtmelisse maatriksisse kolima. np.reshape funktsioon tegeleb sellega ühe kõnega.

np.reshape() süntaks

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

Siin

a: massiiv, mida soovite ümber kujundada.

uus Kuju: uus soovitud kuju.

järjekord: vaikimisi on C, rea-peaeriala paigutus.

NumPy ümberkujundamise näide

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

Väljund:

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

numpy.flatten() sisse Python

Python NumPy Flatten tagastab massiivi koopia, mis on kokku ahendatud ühte dimensiooni. Närvivõrkudega (nt konvvõrkudega) töötades tuleb pilditensorit enne tihedale kihile edastamist sageli lamendada. np.flatten() funktsioon tegeleb sellega ühe kõnega.

np.flatten() süntaks

numpy.flatten(order='C')

Siin
järjekord: vaikimisi on C, rea-peaeriala paigutus.

NumPy Flatteni näide

e.flatten()

Väljund:

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

Mis on numpy.hstack() Python?

numpy.hstack on Python funktsioon, mida kasutatakse sisendmassiivide järjestuste horisontaalseks virnastamiseks ühte massiivi. hstack(), lisate andmeid veeru teljele. See on NumPy-s väga mugav abimees, kui teil on vaja tunnusvektoreid kõrvuti ühendada.

Uurime hstack in Python näitega.

Näide:

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

Väljund:

Horizontal Append: [1 2 3 4 5 6]

Milles on numpy.vstack() Python?

numpy.vstack on Python funktsioon, mida kasutatakse sisendmassiivide järjestuste vertikaalseks virnastamiseks ühte massiivi. vstack(), lisate andmeid rea teljele, mis on mugav valimite partiide kombineerimisel.

Uurime seda näite abil.

Näide:

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

Väljund:

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

Pärast NumPy õppimist vstack ja hstack, vaatame näidet, mis genereerib NumPy-s juhuslikke numbreid.

Loo juhuslik Numbers NumPy abil

Gaussi jaotusest juhuslike arvude genereerimiseks kasutage järgmist valemit:

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

Siin

  • Koht: keskmine. Jaotuse keskpunkt.
  • Skaala: standardhälve.
  • Mõõt: tagastatud proovide arv.

Näide:

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

Graafikule kantuna on jaotus sarnane järgmisele graafikule.

Näide juhusliku loomiseks Numbers NumPy abil
Näide juhusliku loomiseks Numbers NumPy abil

Pane tähele, et uuem kood kasutab üha enam moodsat generaatori API-t, np.random.default_rng(), mis on soovitatav asendaja pärandversioonile np.random.normal kõned NumPy 2.x-s.

NumPy Asarray funktsioon

. asarray() Funktsioon teisendab sisendi massiiviks. Sisend võib olla loend, tuple, ndarray või sarnane jada.

süntaksit:

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

Siin

andmed: andmed, mida soovite massiiviks teisendada.

dtüüp: valikuline. Kui pole täpsustatud, tuletatakse andmetüüp sisendandmetest.

järjekord: vaikimisi on C, rea-peamise paigutus. Teine võimalus on F (Fortran-stiilis veerg-major).

Näide:

Vaatleme järgmist nelja rea ​​ja nelja veeruga kahemõõtmelist maatriksit, mis on täidetud arvuga 1.

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

Kui proovite maatriksi väärtust muuta läbi np.array, originaali ei muudeta. Põhjus on selles, et np.array loob maatriksi koopia.

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

Maatriks jääb muutmata. Kasutamine asarray kui soovite algset massiivi kohapeal muuta. Vaatame, mis juhtub, kui määrate kolmanda rea ​​väärtuseks 2.

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

Code Selgitus:

np.asarray(A) teisendab maatriksi A massiivivaatesse.

[2] valib kolmanda rea.

Väljund:

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

Mis on numpy.arange()?

numpy.arange() on sisseehitatud NumPy funktsioon, mis tagastab ndarray, mis sisaldab ühtlaselt jaotatud väärtusi määratletud intervallis. Näiteks väärtuste 1 kuni 10 loomiseks võite kasutada np.arange() in Python.

süntaksit:

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

Python NumPy vahemiku parameetrid:

  • Avaleht: intervalli algus np.arange in Python.
  • Peatus: intervalli lõpp.
  • Samm: väärtuste vaheline kaugus. Vaikimisi on samm 1.
  • Dtüüp: NumPy väljundmassiivi tüüp arange.

Näide:

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

Väljund:

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

Näide:

Selle NumPy sammu muutmiseks arange Näiteks lisage sulgudesse kolmas number. See muudab sammu suurust.

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

Väljund:

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

NumPy Linspace'i funktsioon

linspace tagastab kahe lõpp-punkti vahel ühtlaselt jaotatud valimid.

süntaksit:

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

Siin

  • Avaleht: jada algväärtus.
  • Peatus: jada lõppväärtus.
  • Sisse: genereeritavate näidiste arv. Vaikimisi on see 50.
  • Lõpp-punkt: kui True (vaikimisi) stop on viimane väärtus. Kui False, stop ei ole kaasas.

Näide:

Näiteks saab seda kasutada 10 ühtlaselt paigutatud väärtuse loomiseks vahemikus 1 kuni 5.

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

Väljund:

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

Kui te ei soovi intervalli viimast numbrit lisada, määrake endpoint et False.

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

Väljund:

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

LogSpace NumPy funktsioon sisse Python

logspace tagastab logaritmilisel skaalal ühtlaselt paiknevad arvud. logspace jagab samu parameetreid nagu np.linspace.

süntaksit:

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

Näide:

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

Väljund:

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

Lõpuks, kui soovite kontrollida massiivi üksiku elemendi mälumahtu, saate seda kasutada itemsize.

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

Väljund:

16

Iga element võtab 16 baiti.

Indekseerimine ja sisselõikamine Python

Andmete viilutamine on NumPy abil lihtne. Me viilutame maatriksi e. sisse Python, ridade või veergude tagastamiseks kasutate nurksulge.
Näide:

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

Pea meeles, et NumPy-s algab esimene massiivi indeks 0-st.

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

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

Väljund:

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

In Python, nagu paljudes teistes keeltes,

  • Koma ees olev väärtus tähistab ridu.
  • Koma järel olev väärtus tähistab veerge.
  • Kui soovite veeru valida, lisage : enne veeruindeksit.
  • : tähendab, et soovite kõiki valitud veeru ridu.
print('Second column:', e[:,1])
Second column: [2 5]

Teise rea kahe esimese väärtuse tagastamiseks kasutage : et valida kõik veerud kuni teise indeksini.

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

Statistilised funktsioonid sisse Python

NumPy pakub kasulikku statistiliste funktsioonide komplekti antud massiivi miinimumi, maksimumi, protsentiili, standardhälbe, dispersiooni ja muu leidmiseks. Kõige levinumad on loetletud allpool.

NumPy-l on kaasas tugevad statistilised abimehed, mis on kokku võetud tabelis.

funktsioon Nuhklik
min np.min()
max np.max()
Keskmine np.mean()
Mediaan np.mediaan()
Standardhälve np.std()

Vaatleme järgmist massiivi:

Näide:

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

Väljund:

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

NumPy statistiliste funktsioonide näide

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

Väljund:

4.467042435266913
5.612113171990201
4.934841002270593
4.846995625786663
0.3875019367395316

Mis on numpy dot toode?

numpy.dot on võimas funktsioon maatriksi arvutamiseks. Näiteks saate skalaarkorrutise arvutada järgmiselt: np.dot. numpy.dot tagastab skalaarkorrutise a ja bja käsitleb nii 1D- kui ka 2D-massiive. 2D-sisendite puhul teostab see maatriksite korrutamist.

süntaksit:

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

parameetrid

Siin

x, ysisendmassiivid. x ja y mõlemad peaksid olema 1D või 2D np.dot() toimima skalaarkorrutise või maatriksikorrutisena.

välja: valikuline väljundargument, mida kasutatakse tulemuse jäädvustamiseks. Vastasel juhul tagastatakse ndarray.

Tagastamine

funktsioon numpy.dot() tagastab kahe massiivi skalaarkorrutise x ja ySee tagastab skalaari, kui mõlemad on ühemõõtmelised, vastasel juhul tagastab massiivi. Kui out kui antud, tagastatakse see massiiv.

Tõstab

Skalaarne korrutis Python tõstab ValueError kui viimane mõõde x ei vasta eelviimasele mõõtmele y.

Näide:

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

Väljund:

14

Maatrikskorrutamine sisse Python

NumPy matmul() Funktsioon tagastab kahe massiivi maatrikskorrutise. See töötab järgmiselt.

1) 2D massiivide puhul tagastab see maatriksi normaalkorrutise.

2) Mõõtmete korral, mis on suuremad kui 2, käsitletakse korrutist maatriksite virnana.

3) Ühemõõtmeline massiiv teisendatakse esmalt maatriksiks ja seejärel arvutatakse korrutis.

Siseliide @ operaator, saadaval alates Python 3.5 on lühend sõnast matmul ja seda kasutatakse laialdaselt tänapäevases koodis.

süntaksit:

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

Siin

x, ySisendmassiivid. Skalaarid ei ole lubatud.

välja: valikuline parameeter. Tavaliselt salvestatakse väljund ndarray-mällu.

Näide:

Samal viisil saate arvutada maatriksite korrutamist 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)

Väljund:

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

Determinant

Kui teil on vaja arvutada maatriksi determinant, kasutage np.linalg.det()NumPy hoolitseb mõõtmete eest teie eest.

Näide:

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

Väljund:

-2.000000000000005

NumPy ringhäälingu selgitus

Levitamine on reegel, mis võimaldab NumPy-l erineva kujuga massiividega aritmeetilisi toiminguid teha ilma andmeid kopeerimata. Kui lisate skalaari ühemõõtmelisele vektorile või ühemõõtmelisele vektorile kahemõõtmelisele maatriksile, venitab NumPy väiksemat operandi mööda puuduvaid telgi, nii et kujundid joonduvad. See väldib selgesõnalist Python tsüklid ja see on üks peamisi põhjuseid, miks NumPy kood tundub kiire ja kokkuvõtlik.

Kaks kujundit sobivad edastamiseks, kui paremalt vasakule võrreldes on iga mõõtmete paar kas võrdne või üks neist võrdub 1-ga. Näiteks kuju maatriks (3, 4) saated kuju rea vastu (4,) või kujuga veerg (3, 1)Sama loogika juhib normaliseerimist masinõppes, kus te alamtegijatetracta tunnuse kohta arvutatav keskmine vektor ühel real olevate näidiste partiist. Ringhääling on ka kontseptuaalne mudel, mida kasutavad tensorteegid, näiteks PyTorch, TensorFlow ja JAX, seega kanduvad siin õpitud reeglid otse üle GPU-koodi.

Kuidas NumPy tehisintellekti ja masinõpet toetab

NumPy asub peaaegu iga moodsa all Python Tehisintellekti pinu. PyTorch tensorid, TensorFlow innukad tensorid ja JAX massiivid pakuvad sama edastamist, viilutamist ja ümberjagamistping API, mille õppisite NumPy ndarrays'is. Paljud õpetused edastavad endiselt eeltöödeldud NumPy massiive mudeli treeningtsüklitesse ja raamistikud aktsepteerivad neid ilma konverteerimiseta.

Kolm konkreetset mustrit näitavad, kuidas NumPy tänapäeval tehisintellektiga ühendub. Esiteks vormivad andmeinsenerid toorfunktsioonid NumPy massiivideks enne nende edastamist scikit-learni torujuhtmetele või Hugging Face andmekogumitele. Teiseks kasutavad teadlased NumPy-d protsessori baasjoonena ja seejärel vahetavad CuPy sisse, mis pakub peaaegu identset API-t, kuid töötab NVIDIA GPU-del CUDA kaudu. Kolmandaks ehitab JAX NumPy API-le, et lisada automaatne eristamine ja just-in-time kompileerimine, nii et sama kood, mis töötab sülearvutil, saab töötada pilves TPU-del. Kokkuvõttes on NumPy abil omandatud massiivioskused kanduvad üle igasse suuremasse süvaõppe tööriistakomplekti, mis teeb sellest õpetusest kasuliku sammu tehisintellekti arendamise teel.

KKK

NumPy pakub kiireid N-mõõtmelisi massiive, vektoriseeritud matemaatikat, lineaaralgebrat, juhuslikku valimit ja Fourier' teisendusi. Insenerid ja andmeteadlased kasutavad seda numbriliseks arvutamiseks, pildi- ja signaalitöötluseks, statistikaks ning massiivide selgroona kõrgema taseme teekides, nagu pandas, scikit-learn ja SciPy.

NumPy massiiv salvestab ühe fikseeritud andmetüübi elemente külgnevas mäluplokis, mis muudab vektoriseeritud matemaatika kiireks. Python Loendid hoiavad suvalisi objekte, toetavad segatüüpe ja tuginevad aeglasematele elemendipõhistele tsüklitele, seega on need paindlikud, kuid suurte numbriliste töökoormuste korral palju vähem tõhusad.

NumPy 2.0, mis ilmus 2024. aasta juunis, hoiab põhimassiivi API stabiilsena, kuid eemaldab ammu aegunud aliased, näiteks np.float ja np.intja karmistab tüübi edendamise reegleid. Enamik tootmiskoodi vajab vaid väikeseid muudatusi. Pin numpy<2 kui sõltuvust pole veel uuendatud.

PyTorch ja TensorFlow modelleerivad oma tensorobjekte NumPy ndareidel. Neil on sama kuju, edastamise ja viilutamise semantika ning mõlemad aktsepteerivad sisendina NumPy massiive. NumPy abil omandatud oskused kanduvad otse üle närvivõrkude, treeningtsüklite ja tensorite eeltöötlustorustike loomisele.

Standardne NumPy töötab protsessoril. GPU kiirendamiseks kasutage CuPy-d, mis peegeldab NVIDIA CUDA seadmete NumPy API-t, või JAX-i, mis lisab GPU-dele ja TPU-dele automaatse differentsimise ja just-in-time kompileerimise. Mõlemad võimaldavad teil tehisintellekti töökoormuste jaoks taaskasutada enamikku olemasolevast NumPy koodist minimaalsete ümberkirjutustega.

Anaconda tarnib NumPy vaikimisi. Vastasel juhul käivitage pip install numpy or conda install -c anaconda numpyOlemasoleva installi uuendamiseks NumPy 2.x-le käivitage pip install --upgrade numpyKontrollige aktiivset versiooni print(np.__version__) sees Python.

Leviedastus võimaldab NumPy-l töötada erineva kujuga massiividega ilma andmeid kopeerimata. Väiksem massiiv venitatakse virtuaalselt suurema massiiviga sobima, kui mõõtmed on ühilduvad. See annab jõudu lühikestele avaldistele normaliseerimiseks, skaleerimiseks ja funktsioonide kavandamiseks masinõppe torujuhtmetes.

Võta see postitus kokku järgmiselt: