logo

NumPy Array i Python

Python-lister er en erstatning for arrays, men de leverer ikke den ydeevne, der kræves, mens de beregner store sæt numeriske data.

For at løse dette problem bruger vi NumPy bibliotek af Python. NumPy tilbyder et array-objekt kaldet ndarray . De ligner standard Python-sekvenser, men adskiller sig i visse nøglefaktorer.



Hvad er et NumPy-array?

NumPy-array er en multidimensionel datastruktur, der er kernen i videnskabelig databehandling i Python.

Alle værdier i et array er homogene (af samme datatype).

De tilbyder automatisk vektorisering og udsendelse.



De giver effektiv hukommelsesstyring, ufuncs (universelle funktioner), understøtter forskellige datatyper og er fleksible med indeksering og udskæring.

Dimensioner i arrays

NumPy-arrays kan have flere dimensioner, hvilket giver brugerne mulighed for at gemme data i flerlagsstrukturer.

Dimensioner af array:



Navn Eksempel
0D (nuldimensional) Skalar – Et enkelt element
1D (endimensional) Vektor- En liste over heltal.
2D (todimensional) Matrix- Et regneark med data
3D (tredimensionel) Tensor - Lagring af et farvebillede

Opret Array Object

NumPy arrays objekter giver os mulighed for at arbejde med arrays i Python. Arrayobjektet kaldes ndarray .

array()-funktionen i NumPy-biblioteket opretter et ndarray.

Python3




list.sort java
import> numpy as np> arr>=> np.array([>1>,>2>,>3>,>4>,>5>,>6>])>

jerv vs grævling

>

>

Produktion

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

Vi kan også oprette et NumPy-array ved hjælp af List og Tuple.

Opret NumPy Array fra en liste

Du kan bruge np-aliaset til at oprette ndarray af en liste ved hjælp af array() metoden.

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

eller

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

Listen videregives til array()-metoden, som derefter returnerer et array med de samme elementer.

Eksempel 1: Følgende eksempel viser, hvordan man initialiserer et array fra en liste.

Python3




java få aktuel tid

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

>

>

Produktion:

[1 2 3 4]>

Det resulterende array ser det samme ud som en liste, men er et NumPy-objekt.

Eksempel 2: Lad os tage et eksempel for at kontrollere, om numpyArr er et NumPy-objekt eller ej. I dette eksempel bruger vi array()-funktionen til at konvertere listen til et NumPy-array og derefter kontrollere, om det er et NumPy-objekt eller ej.

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

>

>

Produktion:

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

Som du kan se er li et listeobjekt, hvorimod numpyArr er et arrayobjekt af NumPy.

Opret et NumPy-array fra en Tuple

Du kan lave ndarray fra en tupel ved hjælp af en lignende syntaks.

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

eller

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

Følgende eksempel illustrerer, hvordan man opretter et array fra en tupel. Her bruger vi array()-funktionen til at konvertere tuple til et NumPy-array.

Python3


heltal til streng



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

>

>

Produktion:

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

Bemærk, at værdien af ​​numpyArr forbliver den samme for en af ​​de to konverteringer.

NumPy Arrays vs Indbyggede Python-sekvenser

  • I modsætning til lister er arrays af fast størrelse, og ændring af størrelsen på et array vil føre til oprettelse af et nyt array, mens det originale array vil blive slettet.
  • Alle elementer i et array er af samme type.
  • Arrays er hurtigere, mere effektive og kræver mindre syntaks end standard Python-sekvenser.

Bemærk: Forskellige videnskabelige og matematiske Python-baserede pakker bruger Numpy. De kan tage input som en indbygget Python-sekvens, men de vil sandsynligvis konvertere dataene til et NumPy-array for at opnå hurtigere behandling. Dette forklarer behovet for at forstå NumPy.

genstart mysql ubuntu

Hvorfor er Numpy Array så hurtig?

Numpy arrays er for det meste skrevet i C sprog . Da de er skrevet i C, er arrays gemt i sammenhængende hukommelsesplaceringer, hvilket gør dem tilgængelige og nemmere at manipulere. Det betyder, at du kan få præstationsniveauet for en C-kode med lethed ved at skrive et Python-program.

  1. Homogene data: Arrays gemmer elementer af samme datatype, hvilket gør dem mere kompakte og hukommelseseffektive end lister.
  2. Fast datatype: Arrays har en fast datatype, hvilket reducerer hukommelsesomkostningerne ved at eliminere behovet for at gemme typeinformation for hvert element.
  3. Sammenhængende hukommelse: Arrays gemmer elementer i tilstødende hukommelsesplaceringer, hvilket reducerer fragmentering og giver mulighed for effektiv adgang.
numpyarray

Numpy Array Memory Allocation

Hvis du ikke har NumPy installeret på dit system, kan du gøre det ved at følge disse trin. Efter installation af NumPy kan du importere det til dit program på denne måde

import numpy as np>

Bemærk: Her er np et almindeligt brugt alias for NumPy.

Dataallokering i Numpy Array

I NumPy allokeres data sammenhængende i hukommelsen efter et veldefineret layout bestående af databufferen, formen og skridtene. Dette er afgørende for effektiv dataadgang, vektoriserede operationer og kompatibilitet med biblioteker på lavt niveau som f.eks BLAS og LAPACK .

  1. Databuffer: Databufferen i NumPy er en enkelt flad hukommelsesblok, der gemmer de faktiske elementer i arrayet, uanset dets dimensionalitet. Dette muliggør effektiv elementmæssig drift og dataadgang.
  2. Form: Formen af ​​et array er en tupel af heltal, der repræsenterer dimensionerne langs hver akse. Hvert heltal svarer til størrelsen af ​​arrayet langs en specifik dimension, som definerer antallet af elementer langs hver akse og er afgørende for korrekt indeksering og omformning af arrayet.
  3. Skridt: Skridt er tupler af heltal, der definerer antallet af bytes, der skal træde i hver dimension, når der flyttes fra et element til det næste. De bestemmer afstanden mellem elementer i hukommelsen og måler, hvor mange bytes der kræves for at flytte fra et element til et andet i hver dimension.

2

Konklusion

NumPy-array i Python er en meget nyttig datastruktur, og den giver os mulighed for at udføre forskellige videnskabelige operationer på dataene. Det er en meget hukommelseseffektiv datastruktur og tilbyder en lang række fordele i forhold til andre Python-sekvenser.

I denne tutorial har vi forklaret NumPy-arrays i detaljer. Vi har dækket definitionen, dimensionalitet, hvorfor er det hurtigt, og hvordan dataallokering fungerer i et array. Efter at have gennemført denne tutorial vil du få fuldstændig dybdegående viden om NumPy array og vil være i stand til at implementere det i dine Python-projekter.