logo

NumPy Array v Pythonu

Seznami Python so nadomestek za polja, vendar ne zagotavljajo zmogljivosti, ki je potrebna pri računanju velikih nizov numeričnih podatkov.

Za reševanje te težave uporabljamo knjižnica NumPy Pythona. NumPy ponuja matrični objekt, imenovan ndarray . Podobni so standardnim zaporedjem Python, vendar se razlikujejo v nekaterih ključnih dejavnikih.



Kaj je NumPy Array?

Matrika NumPy je večdimenzionalna podatkovna struktura, ki je jedro znanstvenega računalništva v Pythonu.

Vse vrednosti v matriki so homogene (iste vrste podatkov).

Ponujajo samodejno vektorizacijo in oddajanje.



Zagotavljajo učinkovito upravljanje pomnilnika, ufuncs (univerzalne funkcije), podpirajo različne vrste podatkov in so prilagodljivi z indeksiranjem in rezanjem.

Dimenzije v nizih

Nizi NumPy imajo lahko več dimenzij, kar uporabnikom omogoča shranjevanje podatkov v večplastnih strukturah.

Dimenzije niza:



Ime Primer
0D (ničdimenzionalni) Skalar – en element
1D (enodimenzionalno) Vektor - Seznam celih števil.
2D (dvodimenzionalno) Matrix - preglednica podatkov
3D (tridimenzionalno) Tenzor - shranjevanje barvne slike

Ustvari matrični predmet

Objekti matrike NumPy nam omogočajo delo z matrikami v Pythonu. Pokliče se matrični objekt ndarray .

funkcija array() knjižnice NumPy ustvari ndarray.

Python3




css poravnava besedila
import> numpy as np> arr>=> np.array([>1>,>2>,>3>,>4>,>5>,>6>])>

java math.min
>

>

Izhod

[1,2,3,4,5,6]>

Ustvarimo lahko tudi matriko NumPy z uporabo List in Tuple.

Ustvari matriko NumPy s seznama

Z vzdevkom np lahko ustvarite ndarray od a seznam z uporabo metode array().

li = [1,2,3,4] numpyArr = np.array(li)>

oz

numpyArr = np.array([1,2,3,4])>

Seznam se posreduje metodi array(), ki nato vrne matriko z enakimi elementi.

Primer 1: Naslednji primer prikazuje, kako inicializirati matriko s seznama.

Python3




java datum v niz

import> numpy as np> > li>=> [>1>,>2>,>3>,>4>]> numpyArr>=> np.array(li)> print>(numpyArr)>

>

>

Izhod:

[1 2 3 4]>

Nastala matrika je videti enako kot seznam, vendar je predmet NumPy.

Primer 2: Vzemimo primer, da preverimo, ali je numpyArr objekt NumPy ali ne. V tem primeru uporabljamo funkcijo array() za pretvorbo seznama v matriko NumPy in nato preverimo, ali je objekt NumPy ali ne.

Python3




import> numpy as np> > li>=> [>1>,>2>,>3>,>4>]> numpyArr>=> np.array(li)> > print>(>'li ='>, li,>'and type(li) ='>,>type>(li))> print>(>'numpyArr ='>, numpyArr,>'and type(numpyArr) ='>,>type>(numpyArr))>

>

>

Izhod:

li = [1, 2, 3, 4] and type(li) = numpyArr = [1 2 3 4] and type(numpyArr) =>

Kot lahko vidite, je li objekt seznama, medtem ko je numpyArr matrični objekt NumPy.

Ustvarite matriko NumPy iz zbirke

ndarray lahko naredite iz a tuple z uporabo podobne sintakse.

tup = (1,2,3,4) numpyArr = np.array(tup)>

oz

numpyArr = np.array((1,2,3,4))>

Naslednji primer ponazarja, kako ustvariti matriko iz tuple. Tukaj uporabljamo funkcijo array() za pretvorbo tuple v matriko NumPy.

Python3


tipkopisna zanka foreach



import> numpy as np> > tup>=> (>1>,>2>,>3>,>4>)> numpyArr>=> np.array(tup)> > print>(>'tup ='>, tup,>'and type(tup) ='>,>type>(tup))> print>(>'numpyArr ='>, numpyArr,>'and type(numpyArr) ='>,>type>(numpyArr))>

>

>

Izhod:

tup = (1, 2, 3, 4) and type(tup) = numpyArr = [1 2 3 4] and type(numpyArr) =>

Upoštevajte, da vrednost numpyArr ostane enaka za katero koli od obeh pretvorb.

Nizi NumPy proti vgrajenim zaporedjem Python

  • Za razliko od seznamov so polja fiksne velikosti in sprememba velikosti matrike bo povzročila ustvarjanje nove matrike, medtem ko bo prvotna matrika izbrisana.
  • Vsi elementi v matriki so iste vrste.
  • Nizi so hitrejši, učinkovitejši in zahtevajo manj sintakse kot standardna zaporedja Python.

Opomba: Različni znanstveni in matematični paketi, ki temeljijo na Pythonu, uporabljajo Numpy. Vnos lahko sprejmejo kot vgrajeno zaporedje Python, vendar bodo podatke verjetno pretvorili v matriko NumPy, da bi dosegli hitrejšo obdelavo. To pojasnjuje potrebo po razumevanju NumPy.

Zakaj je Numpy Array tako hiter?

Nizi Numpy so večinoma zapisani v jezik C . Ker so nizi napisani v C, so shranjeni na sosednjih pomnilniških lokacijah, zaradi česar so dostopni in lažji za manipulacijo. To pomeni, da lahko dosežete raven zmogljivosti kode C z lahkoto pisanja programa Python.

miška in vrste miške
  1. Homogeni podatki: Matrike shranjujejo elemente iste vrste podatkov, zaradi česar so bolj kompaktne in pomnilniško učinkovite kot seznami.
  2. Fiksna vrsta podatkov: Matrike imajo fiksni podatkovni tip, kar zmanjša obremenitev pomnilnika z odpravo potrebe po shranjevanju informacij o vrsti za vsak element.
  3. Neprekinjeni pomnilnik: Nizi shranjujejo elemente na sosednjih pomnilniških lokacijah, kar zmanjšuje razdrobljenost in omogoča učinkovit dostop.
numpyarray

Dodelitev pomnilnika polja Numpy

Če v sistemu nimate nameščenega NumPyja, lahko to storite tako, da sledite tem korakom. Ko namestite NumPy, ga lahko uvozite v svoj program tako

import numpy as np>

Opomba: Tu je np pogosto uporabljen vzdevek za NumPy.

Dodeljevanje podatkov v nizu Numpy

V NumPy so podatki v pomnilniku dodeljeni neprekinjeno po dobro definirani postavitvi, ki jo sestavljajo podatkovni medpomnilnik, oblika in koraki. To je bistveno za učinkovit dostop do podatkov, vektorizirane operacije in združljivost s knjižnicami nizkega nivoja, kot je BLAS in LAPACK .

  1. Medpomnilnik podatkov: Podatkovni medpomnilnik v NumPy je en sam, ploščat blok pomnilnika, ki shranjuje dejanske elemente matrike, ne glede na njeno dimenzijo. To omogoča učinkovito delovanje po elementih in dostop do podatkov.
  2. Oblika: Oblika matrike je nabor celih števil, ki predstavlja dimenzije vzdolž vsake osi. Vsako celo število ustreza velikosti matrike vzdolž določene dimenzije, ki določa število elementov vzdolž vsake osi in je bistvena za pravilno indeksiranje in preoblikovanje matrike.
  3. Koraki: Koraki so nizi celih števil, ki določajo število bajtov, ki jih je treba prestopiti v vsaki dimenziji, ko se premikate od enega elementa do drugega. Določajo razmik med elementi v pomnilniku in merijo, koliko bajtov je potrebnih za premikanje od enega elementa do drugega v vsaki dimenziji.

2

Zaključek

Matrika NumPy v Pythonu je zelo uporabna podatkovna struktura in nam omogoča izvajanje različnih znanstvenih operacij na podatkih. Je zelo pomnilniško učinkovita podatkovna struktura in ponuja široko paleto prednosti pred drugimi zaporedji Python.

V tej vadnici smo podrobno razložili polja NumPy. Zajeli smo definicijo, dimenzionalnost, zakaj je hiter in kako deluje dodeljevanje podatkov v nizu. Po zaključku te vadnice boste pridobili popolno poglobljeno znanje o matriki NumPy in jo boste lahko implementirali v svoje projekte Python.