logo

NumPy Array i Python

Python-lister er en erstatning for arrays, men de klarer ikke å levere ytelsen som kreves mens de beregner store sett med numeriske data.

For å løse dette problemet bruker vi NumPy bibliotek av Python. NumPy tilbyr et array-objekt kalt ndarray . De ligner på standard Python-sekvenser, men er forskjellige i visse nøkkelfaktorer.



Hva er en NumPy Array?

NumPy array er en flerdimensjonal datastruktur som er kjernen i vitenskapelig databehandling i Python.

Alle verdier i en matrise er homogene (av samme datatype).

De tilbyr automatisk vektorisering og kringkasting.



De gir effektiv minneadministrasjon, ufuncs (universelle funksjoner), støtter ulike datatyper og er fleksible med indeksering og slicing.

Dimensjoner i matriser

NumPy-matriser kan ha flere dimensjoner, slik at brukere kan lagre data i flerlagsstrukturer.

Dimensjoner for array:



Navn Eksempel
0D (nulldimensjonal) Skalar – Et enkelt element
1D (endimensjonal) Vektor - En liste over heltall.
2D (todimensjonal) Matrix- Et regneark med data
3D (tredimensjonal) Tensor- Lagre et fargebilde

Opprett Array-objekt

NumPy arrays objekter lar oss jobbe med arrays i Python. Matriseobjektet kalles ndarray .

array()-funksjonen til NumPy-biblioteket lager en ndarray.

Python3




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

jerv vs grevling

>

>

Produksjon

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

Vi kan også lage en NumPy-array ved å bruke List og Tuple.

Lag NumPy Array fra en liste

Du kan bruke np-aliaset til å lage ndarray av en liste ved å bruke array()-metoden.

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

eller

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

Listen sendes til array()-metoden som deretter returnerer en matrise med de samme elementene.

Eksempel 1: Følgende eksempel viser hvordan du initialiserer en matrise fra en liste.

Python3




java konvertere char til streng

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

>

>

Produksjon:

[1 2 3 4]>

Den resulterende matrisen ser ut som en liste, men er et NumPy-objekt.

Eksempel 2: La oss ta et eksempel for å sjekke om numpyArr er et NumPy-objekt eller ikke. I dette eksemplet bruker vi funksjonen array() for å konvertere listen til en NumPy-matrise og deretter sjekke om det er et NumPy-objekt eller ikke.

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

>

>

Produksjon:

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

Som du kan se er li et listeobjekt mens numpyArr er et arrayobjekt av NumPy.

Lag en NumPy Array fra en Tuple

Du kan lage ndarray fra en tuppel ved å bruke 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 du lager en matrise fra en tuppel. Her bruker vi funksjonen array() for å konvertere tuppelen til en NumPy-matrise.

Python3


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

>

>

Produksjon:

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

Merk at verdien av numpyArr forblir den samme for en av de to konverteringene.

NumPy Arrays vs Inbuilt Python Sequences

  • I motsetning til lister har matriser fast størrelse, og endring av størrelsen på en matrise vil føre til opprettelse av en ny matrise mens den opprinnelige matrisen vil bli slettet.
  • Alle elementene i en matrise er av samme type.
  • Arrays er raskere, mer effektive og krever mindre syntaks enn standard Python-sekvenser.

Merk: Ulike vitenskapelige og matematiske Python-baserte pakker bruker Numpy. De kan ta inndata som en innebygd Python-sekvens, men de vil sannsynligvis konvertere dataene til en NumPy-matrise for å oppnå raskere behandling. Dette forklarer behovet for å forstå NumPy.

slett siste commit git

Hvorfor er Numpy Array så rask?

Numpy-matriser er for det meste skrevet i C språk . Matrisene er skrevet i C, og lagres i sammenhengende minneplasseringer som gjør dem tilgjengelige og lettere å manipulere. Dette betyr at du kan få ytelsesnivået til en C-kode med den enkle å skrive et Python-program.

  1. Homogene data: Matriser lagrer elementer av samme datatype, noe som gjør dem mer kompakte og minneeffektive enn lister.
  2. Fast datatype: Arrays har en fast datatype, noe som reduserer minneoverhead ved å eliminere behovet for å lagre typeinformasjon for hvert element.
  3. Sammenhengende minne: Arrays lagrer elementer i tilstøtende minneplasseringer, reduserer fragmentering og gir effektiv tilgang.
numpyarray

Numpy Array Memory Allocation

Hvis du ikke har NumPy installert på systemet ditt, kan du gjøre det ved å følge disse trinnene. Etter å ha installert NumPy kan du importere det til programmet ditt på denne måten

import numpy as np>

Merk: Her er np et ofte brukt alias for NumPy.

Datatildeling i Numpy Array

I NumPy blir data tildelt sammenhengende i minnet, etter et veldefinert oppsett som består av databuffer, form og skritt. Dette er avgjørende for effektiv datatilgang, vektoriserte operasjoner og kompatibilitet med lavnivåbiblioteker som BLAS og LAPACK .

  1. Databuffer: Databufferen i NumPy er en enkelt, flat minneblokk som lagrer de faktiske elementene i matrisen, uavhengig av dimensjonaliteten. Dette muliggjør effektiv elementmessig drift og datatilgang.
  2. Form: Formen til en matrise er en tuppel av heltall som representerer dimensjonene langs hver akse. Hvert heltall tilsvarer størrelsen på matrisen langs en bestemt dimensjon, som definerer antall elementer langs hver akse og er avgjørende for riktig indeksering og omforming av matrisen.
  3. Skritt: Skritt er tupler av heltall som definerer antall byte som skal gå i hver dimensjon når du flytter fra ett element til det neste. De bestemmer avstanden mellom elementer i minnet og måler hvor mange byte som kreves for å flytte fra ett element til et annet i hver dimensjon.

2

Konklusjon

NumPy array i Python er en veldig nyttig datastruktur og den lar oss utføre ulike vitenskapelige operasjoner på dataene. Det er en svært minneeffektiv datastruktur og tilbyr en rekke fordeler i forhold til andre Python-sekvenser.

I denne opplæringen har vi forklart NumPy-matriser i detalj. Vi har dekket definisjonen, dimensjonalitet, hvorfor er det raskt, og hvordan dataallokering fungerer i en matrise. Etter å ha fullført denne opplæringen vil du få fullstendig dybdekunnskap om NumPy-arrayen og vil kunne implementere den i Python-prosjektene dine.