Python-listor är ett substitut för arrayer, men de levererar inte den prestanda som krävs vid beräkning av stora uppsättningar numeriska data.
För att lösa detta problem använder vi NumPy bibliotek av Python. NumPy erbjuder ett arrayobjekt som kallas ndarray . De liknar vanliga Python-sekvenser men skiljer sig i vissa nyckelfaktorer.
Vad är en NumPy Array?
NumPy array är en flerdimensionell datastruktur som är kärnan i vetenskaplig beräkning i Python.
Alla värden i en array är homogena (av samma datatyp).
De erbjuder automatisk vektorisering och sändning.
De tillhandahåller effektiv minneshantering, ufuncs (universella funktioner), stöder olika datatyper och är flexibla med indexering och skivning.
Dimensioner i matriser
NumPy-matriser kan ha flera dimensioner, vilket gör att användare kan lagra data i strukturer med flera lager.
Dimensioner av array:
| namn | Exempel |
| 0D (nolldimensionell) | Skalär – Ett enda element |
| 1D (endimensionell) | Vektor- En lista över heltal. |
| 2D (tvådimensionell) | Matrix- Ett kalkylblad med data |
| 3D (tredimensionell) | Tensor- Lagra en färgbild |
Skapa arrayobjekt
NumPy arrays objekt tillåter oss att arbeta med arrayer i Python. Arrayobjektet anropas ndarray .
array()-funktionen i NumPy-biblioteket skapar en ndarray.
Python3
java vända en sträng
import> numpy as np> arr>=> np.array([>1>,>2>,>3>,>4>,>5>,>6>])> |
>
>
Produktion
[1,2,3,4,5,6]>
Vi kan också skapa en NumPy-array med List och Tuple.
Skapa NumPy Array från en lista
Du kan använda np-aliaset för att skapa ndarray av en lista med array()-metoden.
li = [1,2,3,4] numpyArr = np.array(li)>
eller
numpyArr = np.array([1,2,3,4])>
Listan skickas till metoden array() som sedan returnerar en array med samma element.
hur många städer finns det i usa
Exempel 1: Följande exempel visar hur man initierar en array från en lista.
Python3
vad är måtten på min datorskärm
import> numpy as np> > li>=> [>1>,>2>,>3>,>4>]> numpyArr>=> np.array(li)> print>(numpyArr)> |
>
>
Produktion:
[1 2 3 4]>
Den resulterande arrayen ser ut som en lista men är ett NumPy-objekt.
Exempel 2: Låt oss ta ett exempel för att kontrollera om numpyArr är ett NumPy-objekt eller inte. I det här exemplet använder vi array()-funktionen för att konvertera listan till en NumPy-array och sedan kontrollera om det är ett NumPy-objekt eller inte.
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 är li ett listobjekt medan numpyArr är ett arrayobjekt av NumPy.
Skapa en NumPy Array från en Tuple
Du kan göra ndarray från en tuppel använder en liknande syntax.
tup = (1,2,3,4) numpyArr = np.array(tup)>
eller
numpyArr = np.array((1,2,3,4))>
Följande exempel illustrerar hur man skapar en array från en tupel. Här använder vi array()-funktionen för att konvertera tupeln till en NumPy-array.
Python3
java gör medan
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))> |
typskript datumtyp
>
>
Produktion:
tup = (1, 2, 3, 4) and type(tup) = numpyArr = [1 2 3 4] and type(numpyArr) =>
Observera att värdet på numpyArr förblir detsamma för någon av de två omvandlingarna.
NumPy Arrays vs Inbuilt Python Sequences
- Till skillnad från listor är arrayer av fast storlek och att ändra storleken på en array kommer att leda till att en ny array skapas medan den ursprungliga arrayen tas bort.
- Alla element i en array är av samma typ.
- Arrayer är snabbare, effektivare och kräver mindre syntax än vanliga Python-sekvenser.
Notera: Olika vetenskapliga och matematiska Python-baserade paket använder Numpy. De kan ta indata som en inbyggd Python-sekvens men de kommer sannolikt att konvertera data till en NumPy-array för att uppnå snabbare bearbetning. Detta förklarar behovet av att förstå NumPy.
Varför är Numpy Array så snabb?
Numpy arrayer skrivs mestadels i C språk . Eftersom de är skrivna i C, lagras arrayerna i angränsande minnesplatser, vilket gör dem tillgängliga och lättare att manipulera. Detta innebär att du kan få prestandanivån för en C-kod med enkelheten att skriva ett Python-program.
- Homogena data: Matriser lagrar element av samma datatyp, vilket gör dem mer kompakta och minneseffektiva än listor.
- Fast datatyp: Matriser har en fast datatyp, vilket minskar minneskostnader genom att eliminera behovet av att lagra typinformation för varje element.
- Sammanhängande minne: Arrayer lagrar element i angränsande minnesplatser, vilket minskar fragmentering och möjliggör effektiv åtkomst.

Numpy Array Memory Allocation
Om du inte har NumPy installerat i ditt system kan du göra det genom att följa dessa steg. Efter att du har installerat NumPy kan du importera det till ditt program så här
import numpy as np>
Notera: Här är np ett vanligt använt alias för NumPy.
Dataallokering i Numpy Array
I NumPy allokeras data kontinuerligt i minnet, efter en väldefinierad layout som består av databufferten, formen och stegen. Detta är viktigt för effektiv dataåtkomst, vektoriserade operationer och kompatibilitet med lågnivåbibliotek som BLAS och LAPACK .
- Databuffert: Databufferten i NumPy är ett enda platt minnesblock som lagrar de faktiska elementen i arrayen, oavsett dess dimensionalitet. Detta möjliggör effektiv elementvis drift och dataåtkomst.
- Form: Formen på en array är en tupel av heltal som representerar dimensionerna längs varje axel. Varje heltal motsvarar storleken på arrayen längs en specifik dimension, som definierar antalet element längs varje axel och är avgörande för korrekt indexering och omformning av arrayen.
- Steg: Steg är tuplar av heltal som definierar antalet byte att stega i varje dimension när man flyttar från ett element till nästa. De bestämmer avståndet mellan element i minnet och mäter hur många byte som krävs för att flytta från ett element till ett annat i varje dimension.

Slutsats
NumPy array i Python är en mycket användbar datastruktur och den tillåter oss att utföra olika vetenskapliga operationer på datan. Det är en mycket minneseffektiv datastruktur och erbjuder en mängd olika fördelar jämfört med andra Python-sekvenser.
I den här handledningen har vi förklarat NumPy-arrayer i detalj. Vi har täckt definitionen, dimensionalitet, varför är det snabbt och hur dataallokering fungerar i en array. Efter att ha slutfört denna handledning kommer du att få fullständig djupgående kunskap om NumPy-arrayen och kommer att kunna implementera den i dina Python-projekt.