Python NumPy-opetusohjelma aloittelijoille

โšก ร„lykรคs yhteenveto

NumPy on perustavanlaatuinen Python kirjasto numeeriseen laskentaan, taulukoiden, matriisien, lineaarialgebran ja satunnaisnรคytteenoton suorittamiseen. Tรคmรค NumPy-opetusohjelma kรคy lรคpi asennuksen, taulukon luomisen, uudelleenjakamisenping, viipalointi, tilastot ja matriisimatematiikka ajettavalla ohjelmalla Python esimerkkejรค.

  • โœ… Ydinkรคyttรถ: Nopeat N-ulotteiset taulukot ja vektorisoitu matematiikka Python.
  • โš™๏ธ Keskeiset toiminnot: nollat, ykkรถset, muodonmuutos, hstack, piste, linspace.
  • ๐Ÿ“š Foundations: Lineaarialgebra, lรคhetys, tilastotiede, viipalointi.
  • ๐Ÿš€ Nykyinen versio: NumPy 2.x (julkaistu kesรคkuussa 2024) on nyt vakaa.
  • ๐Ÿค– Tekoรคlyn kรคyttรถ: Py:n selkรคrankaTorch-, TensorFlow-, JAX- ja CuPy-tensorit.

Python NumPy opetusohjelma

Mitรค NumPy sisรคltรครค Python?

nuhjuinen on avoimen lรคhdekoodin Python kirjasto matemaattiseen, tieteelliseen, tekniikan ja datatieteen ohjelmointiin. Se on erittรคin hyรถdyllinen kirjasto matemaattisiin ja tilastollisiin operaatioihin PythonSe toimii tรคydellisesti moniulotteisten taulukoiden ja matriisien kertolaskun kanssa ja integroituu helposti C/C++ ja Fortran.

NumPy on tyรถkalu mihin tahansa tieteelliseen projektiin. Se on rakennettu N-ulotteisia taulukoita, lineaarialgebraa, satunnaislukujen generointia, Fourier-muunnoksia ja paljon muuta varten.

NumPy antaa Python ensiluokkainen tuki moniulotteisille taulukoille ja matriiseille sekรค laaja valikoima matemaattisia laskutoimituksia, jotka vaikuttavat niihin. Tรคssรค oppaassa kรคymme lรคpi tรคrkeimmรคt funktiot, jotka sinun on tiedettรคvรค ennen kuin siirrymme opetusohjelmaan aiheesta 'TensorFlow. "

Miksi kรคyttรครค NumPyรค?

NumPy on muistitehokas, joten se pystyy kรคsittelemรครคn suuria mรครคriรค numeerista dataa helpommin kuin pelkkรค Python listoja. Se on myรถs erittรคin kรคtevรค matriisien kertolaskussa ja uudelleenjaossaping, ja se on nopea, koska raskas tyรถ on delegoitu kรครคnnetyille C-rutiineille. Itse asiassa kirjastot, kuten TensorFlow, PyTorch ja Scikit-learn kรคyttรคvรคt NumPy-taulukoita matriisimatematiikkaan taustajรคrjestelmรคssรครคn, mikรค tekee NumPysta hiljaisen tyรถjuhtan useimpien nykyaikaisten datatieteen ja tekoรคlyn tyรถnkulkujen alla.

Kuinka asentaa NumPy

Asentaaksesi NumPy-kirjaston, katso opastusvideomme Kuinka asentaa TensorFlow. NumPy asennetaan oletuksena Anacondan kanssa.

Siinรค harvinaisessa tapauksessa, ettรค NumPy:tรค ei ole asennettu, kรคytรค mitรค tahansa alla olevista vaihtoehdoista.

Voit asentaa NumPyn Anacondan avulla:

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

Pip-kรคyttรคjรคt voivat asentaa tai pรคivittรครค yhdellรค komennolla:

pip install --upgrade numpy

Tuo NumPy ja tarkista versio

Numpy-tuontikomento on:

import numpy as np

Yllรค oleva rivi nimeรครค NumPy-nimiavaruuden uudelleen muotoon npTรคmรคn pikanรคppรคimen avulla voit lisรคtรค NumPy-funktioiden, -metodien ja -attribuuttien etuliitteeseen np. sijaan typing numpy., ja se on NumPy-ekosysteemissรค noudatettava vakiokรคytรคntรถ.

Voit tarkistaa asennetun NumPy-version seuraavalla komennolla:

print(np.__version__)

lรคhtรถ:

2.1.3

NumPy 2.0 julkaistiin kesรคkuussa 2024, ja se on nykyinen vakaa pรครคversio. Jos projektisi on edelleen riippuvainen 1.x-rajapinnasta, kiinnitรค se numpy<2 vaatimustiedostossasi, koska jotkin vanhat aliakset, kuten np.float poistettiin versiossa 2.0.

Mikรค on a Python NumPy Array?

NumPy-taulukot nรคyttรคvรคt vรคhรคn siltรค kuin Python ensi silmรคyksellรค listoja, mutta ne kรคyttรคytyvรคt hyvin eri tavalla. Aiheeseen tutustumattomille lukijoille selvennetรครคn, mikรค ndarray on ja miksi se on tรคrkeรค.

Kuten nimestรค voi pรครคtellรค, NumPy-taulukko on NumPy-kirjaston keskeinen tietorakenne. Nimi itsessรครคn on lyhenne sanoista โ€Numericโ€ (numero) Pythonโ€ tai โ€Numero Pythonโ€, ja ndarray on homogeeninen, kiinteรคn kokoinen muistilohko, jolla on tunnettu muoto ja tietotyyppi.

NumPy-taulukon luominen

Helpoin tapa luoda taulukko NumPy:ssรค on aloittaa Python Lista.

myPythonList = [1,9,8,3]

muuntaa Python lista NumPy-taulukkoon kรคyttรคmรคllรค np.array.

numpy_array_from_list = np.array(myPythonList)

Nรคytรค taulukon sisรคltรถ.

numpy_array_from_list

lรคhtรถ:

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

Kรคytรคnnรถssรค ei tarvitse ilmoittaa a Python lista ensin. Nรคmรค kaksi vaihetta voidaan yhdistรครค.

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

HUOMAUTUS: NumPy-dokumentaatiossa mainitaan myรถs np.ndarray, Vaan np.array on suositeltu tehdastoiminto jokapรคivรคiseen kรคyttรถรถn.

Voit myรถs luoda NumPy-taulukon tuplesta samalla tavalla.

matemaattinen Operaryhmiรค

Voit suorittaa matemaattisia operaatioita, kuten yhteenlaskua, osalaskuatracjako-, kerto- ja jakolaskut taulukossa. Syntaksi on taulukon nimi, jota seuraa operaattori (+, -, *, /), jota seuraa operandi. Nรคmรค operaatiot ovat vektorisoituja, mikรค tarkoittaa, ettรค NumPy soveltaa niitรค jokaiseen elementtiin ilman eksplisiittistรค Python silmukka.

Esimerkiksi:

numpy_array_from_list + 10

lรคhtรถ:

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

Tรคmรค operaatio lisรครค 10 NumPy-taulukon jokaiseen alkioon.

Arrayn muoto

Voit tarkistaa taulukon muodon komennolla shape attribuutti, johon pรครคsee kรคsiksi liittรคmรคllรค se taulukon nimeen. Samalla tavalla voit tarkistaa tyypin komennolla dtype.

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

(3,)
int64

Kokonaisluku on arvo ilman desimaalia. Jos luot taulukon, jossa on desimaaleja, dtype muuttuu liukulukuksi.

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

float64

2 Dimension Array

Voit lisรคtรค ulottuvuuden lisรครคmรคllรค pilkun sulkeiden sisรครคn.

Huomaa, ettรค sisempien tuplejen on oltava ulompien sulkujen sisรคllรค [].

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

3 Dimension Array

Korkeammat mitat voidaan rakentaa samalla tavalla.

### 3 dimension
d = np.array([
    [[1, 2,3],
        [4, 5, 6]],
    [[7, 8,9],
        [10, 11, 12]]
])
print(d.shape)
(2, 2, 3)
Tavoite Code
Luo joukko array([1,2,3])
tulosta muoto array([.]).muoto

Mikรค on numpy.zeros()?

numpy.zeros() or np.zeros on Python funktio, jota kรคytetรครคn nollilla tรคytetyn matriisin luomiseen. numpy.zeros() on hyรถdyllinen, kun sinun on alustettava painot TensorFlow'n ensimmรคisen iteraation aikana tai mรครคritettรคvรค paikkamerkkipuskureita muita tilastollisia tehtรคviรค varten.

numpy.zeros()-funktio Syntaksi

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

Python numpy.zeros() Parametrit

Tรครคllรค

  • Muoto: NumPy-nollataulukon muoto.
  • Dtyyppi: elementtien tietotyyppi. Se on valinnainen, ja oletusarvo on float64.
  • Tilausoletusarvo on C, joka on rivi-pรครคaineasettelu, jota kรคytetรครคn numpy.zeros() in Python.

Python numpy.zeros() Esimerkki

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

lรคhtรถ:

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

Esimerkki numpy-nollasta tietotyypin kanssa

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

lรคhtรถ:

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

Mikรค on numpy.ones()?

np.ones()-funktio luo matriisin, joka on tรคynnรค ykkรถsiรค. numpy.ones() in Python on hyรถdyllinen, kun alustat painoja TensorFlow'n ensimmรคisen iteraation aikana ja muissa tilastollisissa tehtรคvissรค.

Python numpy.ones() Syntaksi

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

Python numpy.ones() Parametrit

Tรครคllรค

  • Muoto: np.one-kappaleiden muoto Python Ryhmรค.
  • Dtyyppi: elementtien tietotyyppi. Se on valinnainen, ja oletusarvo on float64.
  • Tilausoletusarvo on C, joka on rivi-pรครคaineasettelu.

Python numpy.ones() 2D-taulukko tietotyypin esimerkillรค

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

lรคhtรถ:

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

numpy.reshape()-funktio sisรครคn Python

Python NumPy Reshape muuttaa taulukon muotoa muuttamatta sen tietoja. Saatat joutua muotoilemaan tiedot leveรคstรค muodosta pitkรครคn tai siirtรคmรครคn ne 1D-vektorista 2D-matriisiin ennen niiden syรถttรคmistรค malliin. np.reshape funktio kรคsittelee tรคmรคn yhdellรค kutsulla.

np.reshape() syntaksi

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

Tรครคllรค

a: taulukko, jonka muotoa haluat muuttaa.

uusi muoto: uusi haluttu muoto.

Tilausoletusarvo on C, rivi-pรครคaineasettelu.

Esimerkki NumPy Reshapesta

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

lรคhtรถ:

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

numpy.flatten() in Python

Python NumPy Flatten palauttaa kopion taulukosta, joka on tiivistetty yhteen ulottuvuuteen. Kun tyรถskentelet neuroverkkojen, kuten convnettien, kanssa, sinun on usein litistettรคvรค kuvatensori ennen sen siirtรคmistรค tiheรคlle tasolle. np.flatten() funktio kรคsittelee tรคmรคn yhdellรค kutsulla.

np.flatten() syntaksi

numpy.flatten(order='C')

Tรครคllรค
Tilausoletusarvo on C, rivi-pรครคaineasettelu.

Esimerkki NumPy Flattenista

e.flatten()

lรคhtรถ:

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

Mikรค on numpy.hstack() in Python?

numpy.hstack on Python funktio, jota kรคytetรครคn syรถtetaulukoiden sekvenssien vaakasuoraan pinoamiseen yhdeksi taulukoksi. hstack(), lisรครคt tietoja sarakkeen akselille. Se on erittรคin kรคtevรค apulainen NumPy:ssรค, kun sinun on yhdistettรคvรค ominaisuusvektoreita vierekkรคin.

Opiskellaanpa hstack in Python esimerkin kanssa.

Esimerkiksi:

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

lรคhtรถ:

Horizontal Append: [1 2 3 4 5 6]

Mikรค on numpy.vstack() in Python?

numpy.vstack on Python funktio, jota kรคytetรครคn syรถtetaulukoiden sekvenssien pinoamiseen pystysuunnassa yhdeksi taulukoksi. vstack(), liitรคt tietoja riviakselille, mikรค on kรคtevรครค, kun haluat yhdistรครค otoseriรค.

Tutkitaanpa sitรค esimerkin avulla.

Esimerkiksi:

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

lรคhtรถ:

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

Opiskeltuaan NumPy:tรค vstack ja hstack, katsotaanpa esimerkkiรค, joka luo satunnaislukuja NumPy:ssรค.

Luo satunnainen Numbers kรคyttรคmรคllรค NumPyรค

Gaussisen jakauman satunnaislukujen generoimiseksi kรคytรค:

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

Tรครคllรค

  • Lockeskiarvo. Jakauman keskipiste.
  • Asteikko: keskihajonta.
  • Kokopalautettujen nรคytteiden lukumรครคrรค.

Esimerkiksi:

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

Jos jakauma piirretรครคn, se on samankaltainen kuin seuraava kaavio.

Esimerkki satunnaisen luomiseen Numbers kรคyttรคmรคllรค NumPyรค
Esimerkki satunnaisen luomiseen Numbers kรคyttรคmรคllรค NumPyรค

Huomaa, ettรค uudempi koodi kรคyttรครค yhรค enemmรคn modernia generaattorirajapintaa, np.random.default_rng(), joka on suositeltu korvaaja vanhalle np.random.normal kutsut NumPy 2.x:ssรค.

NumPy Asarray-funktio

asarray() funktio muuntaa syรถtteen taulukoksi. Syรถte voi olla lista, tuple, ndarray tai vastaava jono.

Syntaksi:

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

Tรครคllรค

tiedot: tiedot, jotka haluat muuntaa taulukkomuotoon.

dtype: valinnainen. Jos ei ole mรครคritetty, tietotyyppi pรครคtellรครคn syรถttรถtiedoista.

Tilausoletusarvo on C, rivi-pรครคaineasettelu. Toinen vaihtoehto on F (Fortran-tyylinen sarake-pรครค).

Esimerkiksi:

Tarkastellaan seuraavaa 2D-matriisia, jossa on neljรค riviรค ja neljรค saraketta ja joka on tรคytetty luvulla 1.

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

Jos yritรคt muuttaa matriisin arvoa seuraavasti: np.array, alkuperรคistรค ei ole muokattu. Syynรค on se, ettรค np.array luo matriisista kopion.

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

Matriisi pysyy muuttumattomana. Kรคytรค asarray kun haluat muokata alkuperรคistรค taulukkoa sen paikallaan. Katsotaanpa, mitรค tapahtuu, kun asetat kolmannen rivin arvoksi 2.

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

Code Selitys:

np.asarray(A) muuntaa matriisin A taulukkonรคkymรครคn.

[2] valitsee kolmannen rivin.

lรคhtรถ:

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

Mikรค on numpy.arange()?

numpy.arange() on sisรครคnrakennettu NumPy-funktio, joka palauttaa ndarray-arkin, joka sisรคltรครค tasavรคlein olevia arvoja mรครคritellyn aikavรคlin sisรคllรค. Esimerkiksi luodaksesi arvoja 1โ€“10, voit kutsua np.arange() in Python.

Syntaksi:

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

Python NumPy-asetusparametrit:

  • Aloita: aikavรคlin alku kohdassa np.arange in Python.
  • stop: aikavรคlin loppu.
  • Vaihe: arvojen vรคlinen etรคisyys. Oletusaskel on 1.
  • Dtyyppi: NumPy-funktion tulostetaulukon tyyppi arange.

Esimerkiksi:

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

lรคhtรถ:

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

Esimerkiksi:

Muuttaaksesi tรคmรคn NumPy-funktion askelta arange esimerkiksi lisรครค kolmas numero sulkeisiin. Se muuttaa askeleen kokoa.

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

lรคhtรถ:

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

NumPy Linspace Function

linspace palauttaa tasaisesti kahden pรครคtepisteen vรคliltรค sijoitetut nรคytteet.

Syntaksi:

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

Tรครคllรค

  • Aloita: sekvenssin aloitusarvo.
  • stop: sekvenssin loppuarvo.
  • Sisรครคn: luotavien nรคytteiden mรครคrรค. Oletusarvo on 50.
  • pรครคtepiste: jos True (Oletus), stop on viimeinen arvo. Jos False, stop ei sisรคlly toimitukseen.

Esimerkiksi:

Sitรค voidaan esimerkiksi kรคyttรครค luomaan 10 tasavรคlein olevaa arvoa vรคliltรค 1โ€“5.

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

lรคhtรถ:

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

Jos et halua sisรคllyttรครค viimeistรค numeroa vรคliin, aseta endpoint ettรค False.

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

lรคhtรถ:

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

LogSpace NumPy -funktio sisรครคn Python

logspace palauttaa tasavรคlein vรคlein olevat luvut logaritmisella asteikolla. logspace jakaa samat parametrit kuin np.linspace.

Syntaksi:

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

Esimerkiksi:

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

lรคhtรถ:

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

Lopuksi, jos haluat tarkistaa yksittรคisen elementin muistin koon taulukossa, voit kรคyttรครค itemsize.

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

lรคhtรถ:

16

Jokainen elementti vie 16 tavua.

Indeksointi ja leikkaaminen Python

Datan viipalointi on suoraviivaista NumPy:llรค. Viipaloimme matriisin e. sisรครคn Python, kรคytรคt hakasulkeita rivien tai sarakkeiden palauttamiseen.
Esimerkiksi:

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

Muista, ettรค NumPy:ssรค ensimmรคinen taulukon indeksi alkaa nollasta.

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

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

lรคhtรถ:

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

In Python, kuten monissa muissakin kielissรค,

  • Pilkun edessรค oleva arvo tarkoittaa rivejรค.
  • Pilkun jรคlkeinen arvo tarkoittaa sarakkeita.
  • Jos haluat valita sarakkeen, lisรครค : ennen sarakeindeksiรค.
  • : tarkoittaa, ettรค haluat kaikki rivit valitusta sarakkeesta.
print('Second column:', e[:,1])
Second column: [2 5]

Palauttaaksesi toisen rivin kaksi ensimmรคistรค arvoa, kรคytรค : valitaksesi kaikki sarakkeet toiseen indeksiin asti.

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

Tilastofunktiot sisรครคn Python

NumPy tarjoaa hyรถdyllisen joukon tilastollisia funktioita, joilla voi lรถytรครค tietyn taulukon minimin, maksimin, persentiilin, keskihajonnan, varianssin ja muita arvoja. Yleisimmรคt on lueteltu alla.

NumPy sisรคltรครค vankat tilastolliset apufunktiot, jotka on esitetty yhteenvetona taulukossa.

Toiminto Nรถpรถ
Min np.min()
max np.max()
Mean np.mean()
Mediaani np.mediaan()
Keskihajonta np.std()

Tarkastellaan seuraavaa taulukkoa:

Esimerkiksi:

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

lรคhtรถ:

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

Esimerkki NumPy-tilastofunktioista

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

lรคhtรถ:

4.467042435266913
5.612113171990201
4.934841002270593
4.846995625786663
0.3875019367395316

Mikรค on numpy dot -tuote?

numpy.dot on tehokas funktio matriisilaskentaan. Voit esimerkiksi laskea pistetulon funktiolla np.dot. numpy.dot palauttaa pistetulon a ja b, ja kรคsittelee sekรค 1D- ettรค 2D-taulukoita. 2D-syรถtteille se suorittaa matriisien kertolaskun.

Syntaksi:

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

parametrit

Tรครคllรค

x, y: syรถttรถtaulukot. x ja y molempien tulisi olla 1D- tai 2D-muotoisia np.dot() toimimaan pistetulona tai matriisikertolaskuna.

ulos: valinnainen tulosargumentti, jota kรคytetรครคn tuloksen sieppaamiseen. Muussa tapauksessa palautetaan ndarray.

Palautukset

Toiminto numpy.dot() palauttaa kahden taulukon pistetulon x ja ySe palauttaa skalaarin, kun molemmat ovat yksiulotteisia, muuten se palauttaa taulukon. Jos out on annettu, palautetaan kyseinen taulukko.

korotusten

Pistetulo Python nostaa a ValueError jos viimeinen ulottuvuus x ei vastaa toiseksi viimeistรค ulottuvuutta y.

Esimerkiksi:

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

lรคhtรถ:

14

Matriisikertoin Python

NumPy matmul() funktio palauttaa kahden taulukon matriisitulon. Nรคin se toimii.

1) 2D-taulukoille se palauttaa matriisitulon normaalina tulona.

2) Jos ulottuvuus on suurempi kuin 2, tuloa kรคsitellรครคn matriisipinona.

3) Yksiulotteinen taulukko siirretรครคn ensin matriisiksi, minkรค jรคlkeen tulo lasketaan.

Sisรคkieli @ operaattori, saatavilla vuodesta Python 3.5 on lyhenne sanoista matmul ja sitรค kรคytetรครคn laajalti modernissa koodissa.

Syntaksi:

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

Tรครคllรค

x, y: syรถttรถtaulukot. Skalaarit eivรคt ole sallittuja.

ulos: valinnainen parametri. Yleensรค tuloste tallennetaan ndarray-muistiin.

Esimerkiksi:

Samalla tavalla voit laskea matriisien kertolaskun seuraavasti: 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)

lรคhtรถ:

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

mรครคrรครคvรค tekijรค

Jos sinun on laskettava matriisin determinantti, kรคytรค np.linalg.det()NumPy hoitaa mitat puolestasi.

Esimerkiksi:

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

lรคhtรถ:

-2.000000000000005

NumPy-lรคhetysten selitys

Lรคhetys on sรครคntรถ, jonka avulla NumPy voi suorittaa aritmeettisia laskutoimituksia eri muotoisille taulukoille kopioimatta tietoja. Kun lisรครคt skalaarin yksiulotteiseen vektoriin tai yksiulotteisen vektorin kaksiulotteiseen matriisiin, NumPy venyttรครค pienempรครค operandia puuttuvien akseleiden suuntaisesti niin, ettรค muodot ovat linjassa. Tรคmรค vรคlttรครค eksplisiittistรค Python silmukoita ja on yksi tรคrkeimmistรค syistรค, miksi NumPy-koodi tuntuu nopealta ja ytimekkรครคltรค.

Kaksi muotoa on yhteensopivia lรคhetettรคvรคksi, kun oikealta vasemmalle verrattuna kumpikin mittapari on joko yhtรค suuri tai toinen niistรค on yhtรค suuri kuin 1. Esimerkiksi muodon matriisi (3, 4) lรคhetykset muotoriviรค vasten (4,) tai muotoinen pylvรคs (3, 1)Sama logiikka ohjaa normalisointia koneoppimisessa, jossa sub-funktioita kรคytetรครคntracta piirrekohtainen keskiarvovektori nรคytejoukosta yhdellรค rivillรค. Lรคhetys on myรถs tensorikirjastojen, kuten Py:n, kรคyttรคmรค kรคsitteellinen malli.Torch, TensorFlow ja JAX, joten tรคssรค opitut sรครคnnรถt siirtyvรคt suoraan GPU-koodiin.

Miten NumPy tukee tekoรคlyรค ja koneoppimista

NumPy on lรคhes jokaisen modernin laitteen alla Python Tekoรคlypino. PyTorch-tensorit, TensorFlow-eager-tensorit ja JAX-taulukot paljastavat saman lรคhetys-, viipalointi- ja uudelleenjako-ominaisuudetping API, jonka opit NumPy ndarraysissa. Monet tutoriaalit syรถttรคvรคt edelleen esikรคsiteltyjรค NumPy-taulukoita mallien koulutussilmukoihin, ja kehykset hyvรคksyvรคt ne ilman muunnoksia.

Kolme konkreettista mallia havainnollistavat, miten NumPy yhdistyy tekoรคlytyรถhรถn tรคnรค pรคivรคnรค. Ensinnรคkin datainsinรถรถrit muokkaavat raaka-ominaisuudet NumPy-taulukoiksi ennen kuin toimittavat ne scikit-learn-putkille tai Hugging Face -tietojoukoille. Toiseksi tutkijat kรคyttรคvรคt NumPyรค suorittimen perustana ja vaihtavat sitten CuPyn, joka tarjoaa lรคhes identtisen API:n, mutta toimii NVIDIA-nรคytรถnohjaimilla CUDA:n kautta. Kolmanneksi JAX rakentaa NumPy-sovellusliittymรคn pรครคlle lisรคtรคkseen automaattisen erottelun ja just-in-time-kรครคntรคmisen, joten sama kannettavalla tietokoneella suoritettava koodi voi toimia pilvessรค olevilla TPU-suorittimilla. Yhteenvetona voidaan todeta, ettรค NumPyllรค kehitetyt taulukkotaidot siirtyvรคt kaikkiin merkittรคviin syvรคoppimisen tyรถkalupaketteihin, mikรค tekee tรคstรค tutoriaalista hyรถdyllisen askeleen tekoรคlyn kehittรคmisen tiellรค.

UKK

NumPy tarjoaa nopeita N-ulotteisia taulukoita, vektorisoitua matematiikkaa, lineaarialgebraa, satunnaisotantaa ja Fourier-muunnoksia. Insinรถรถrit ja datatieteilijรคt kรคyttรคvรคt sitรค numeeriseen laskentaan, kuvan- ja signaalinkรคsittelyyn, tilastoihin ja taulukoiden selkรคrankana korkeamman tason kirjastoille, kuten pandas, scikit-learn ja SciPy.

NumPy-taulukko tallentaa yhden kiinteรคn tietotyypin elementtejรค yhtenรคiseen muistilohkoon, mikรค tekee vektorioidusta matematiikasta nopeaa. Python Listat sisรคltรคvรคt mielivaltaisia โ€‹โ€‹objekteja, tukevat sekatyyppejรค ja kรคyttรคvรคt hitaampia elementtikohtaisia โ€‹โ€‹silmukoita, joten ne ovat joustavia, mutta paljon vรคhemmรคn tehokkaita suurissa numeerisissa tyรถkuormissa.

Kesรคkuussa 2024 julkaistu NumPy 2.0 pitรครค ydinmatriisirajapinnan vakaana, mutta poistaa pitkรครคn vanhentuneet aliakset, kuten np.float ja np.intja tiukentaa tyypin edistรคmissรครคntรถjรค. Suurin osa tuotantokoodista tarvitsee vain pieniรค muutoksia. Pin numpy<2 jos riippuvuutta ei ole vielรค pรคivitetty.

PyTorch ja TensorFlow mallintavat tensoriobjektejaan NumPy ndarrays -matriiseilla. Niillรค on sama muoto, lรคhetys- ja viipalointisemantiikka, ja molemmat hyvรคksyvรคt NumPy-taulukoita syรถtteenรค. NumPyn avulla opitut taidot siirtyvรคt suoraan neuroverkkojen rakentamiseen, harjoitussilmukoihin ja tensorien esikรคsittelyputkiin.

Vakio NumPy toimii suorittimella. GPU-kiihdytykseen kรคytรค CuPy:tรค, joka peilaa NumPy-rajapintaa NVIDIA CUDA -laitteissa, tai JAX:ia, joka lisรครค automaattisen vertailun ja just-in-time-kรครคntรคmisen GPU:ille ja TPU:ille. Molemmat mahdollistavat suurimman osan olemassa olevan NumPy-koodin uudelleenkรคytรถn minimaalisilla uudelleenkirjoituksilla tekoรคlytyรถkuormissa.

Anaconda toimittaa NumPyn oletusarvoisesti. Muussa tapauksessa suorita pip install numpy or conda install -c anaconda numpyPรคivitรค olemassa oleva asennus NumPy 2.x:รครคn suorittamalla pip install --upgrade numpyTarkista aktiivinen versio kohdasta print(np.__version__) sisรคllรค Python.

Lรคhetystoiminto antaa NumPyn kรคsitellรค erimuotoisia taulukoita kopioimatta tietoja. Pienempi taulukko venytetรครคn virtuaalisesti vastaamaan suurempaa taulukkoa, kun mitat ovat yhteensopivia. Se mahdollistaa ytimekkรครคt lausekkeet normalisointiin, skaalaukseen ja ominaisuuksien suunnitteluun koneoppimisputkissa.

Tiivistรค tรคmรค viesti seuraavasti: