Python NumPy Tutorial för nybörjare: Lär dig med exempel
Vad är NumPy i Python?
numpy är ett bibliotek med öppen källkod tillgängligt i Python, som hjälper till med matematisk, naturvetenskaplig, ingenjörs- och datavetenskaplig programmering. Det är ett mycket användbart bibliotek att utföra matematiska och statistiska operationer i Python. Det fungerar perfekt för flerdimensionella arrayer och matrismultiplikation. Det är lätt att integrera med C/C++ och Fortran.
För alla vetenskapliga projekt är NumPy verktyget att känna till. Den har byggts för att fungera med den N-dimensionella arrayen, linjär algebra, slumptal, Fouriertransform, etc.
NumPy är ett programmeringsspråk som hanterar flerdimensionella arrayer och matriser. Utöver matriserna och matriserna stöder NumPy ett stort antal matematiska operationer. I den här delen kommer vi att granska de väsentliga funktionerna som du behöver känna till för handledningen om 'TensorFlow. '
Varför använda NumPy?
NumPy är minneseffektivitet, vilket innebär att den kan hantera den stora mängden data som är mer tillgänglig än något annat bibliotek. Dessutom är NumPy väldigt bekväm att arbeta med, speciellt för matrismultiplikation och omformning. Utöver det är NumPy snabb. Faktum är att TensorFlow och Scikit lär sig att använda NumPy-arrayen för att beräkna matrismultiplikationen i bakänden.
Hur man installerar NumPy
För att installera NumPy-biblioteket, se vår handledning Hur man installerar TensorFlow. NumPy är installerat som standard med Anaconda.
I fjärrfall, NumPy inte installerat-
Du kan installera NumPy med Anaconda:
conda install -c anaconda numpy
- In Jupyter Anteckningsbok :
import sys !conda install --yes --prefix {sys.prefix} numpy
Importera NumPy och kontrollera version
Kommandot för att importera numpy är:
import numpy as np
Ovanstående kod byter namn på Numpy-namnområdet till np. Detta tillåter oss att prefixa Numpy-funktion, metoder och attribut med "np" istället för att skriva "numpy." Det är standardgenvägen du hittar i numpy-litteraturen
För att kontrollera din installerade version av NumPy, använd kommandot nedan:
print (np.__version__)
Produktion:
1.18.0
Vad är Python NumPy Array?
NumPy-matriser är lite som Python listor, men ändå väldigt mycket olika på samma gång. För er som är nya i ämnet, låt oss förtydliga vad det exakt är och vad det är bra för.
Som namnet ger bort, är en NumPy-array en central datastruktur i numpy-biblioteket. Bibliotekets namn är faktiskt en förkortning för "Numeric Python” eller ”Numerisk Python".
Skapa en NumPy-array
Det enklaste sättet att skapa en array i Numpy är att använda Python Lista
myPythonList = [1,9,8,3]
För att konvertera pythonlista till en numpy array med hjälp av objektet np.array.
numpy_array_from_list = np.array(myPythonList)
För att visa innehållet i listan
numpy_array_from_list
Produktion:
array([1, 9, 8, 3])
I praktiken finns det inget behov av att deklarera en Python Lista. Operationen kan kombineras.
a = np.array([1,9,8,3])
ANMÄRKNINGAR: Numpy-dokumentationen anger användning av np.ndarray för att skapa en array. Detta är dock den rekommenderade metoden.
Du kan också skapa en numpy array från en Tuple.
Matematisk Operationer på en Array
Du kan utföra matematiska operationer som addition, subtraktion, division och multiplikation på en matris. Syntaxen är arraynamnet följt av operationen (+.-,*,/) följt av operanden
Exempelvis:
numpy_array_from_list + 10
Produktion:
array([11, 19, 18, 13])
Denna operation lägger till 10 till varje element i numpy arrayen.
Shape of Array
Du kan kontrollera formen på arrayen med objektformen föregås av arrayens namn. På samma sätt kan du kontrollera typen med dtypes.
import numpy as np a = np.array([1,2,3]) print(a.shape) print(a.dtype) (3,) int64
Ett heltal är ett värde utan decimal. Om du skapar en array med decimal kommer typen att ändras till flytande.
#### Different type b = np.array([1.1,2.0,3.2]) print(b.dtype) float64
2 Dimension Array
Du kan lägga till en dimension med ett ","koma
Observera att det måste vara inom parentesen []
### 2 dimension c = np.array([(1,2,3), (4,5,6)]) print(c.shape) (2, 3)
3 Dimension Array
Högre dimensioner kan konstrueras enligt följande:
### 3 dimension d = np.array([ [[1, 2,3], [4, 5, 6]], [[7, 8,9], [10, 11, 12]] ]) print(d.shape) (2, 2, 3)
Mål | Koda |
---|---|
Skapa array | array([1,2,3]) |
skriv ut formen | array([.]).form |
Vad är numpy.zeros()?
numpy.zeros() eller np.nollor Python funktion används för att skapa en matris full av nollor. numpy.zeros() in Python kan användas när du initierar vikterna under den första iterationen i TensorFlow och andra statistiska uppgifter.
numpy.zeros() funktion Syntax
numpy.zeros(shape, dtype=float, order='C')
Python numpy.zeros() Parametrar
Här,
- Forma: är formen på den numpy nollmatrisen
- Dtyp: är datatypen i numpy nollor. Det är valfritt. Standardvärdet är float64
- Ordersammanställning: Standard är C vilket är en viktig radstil för numpy.zeros() i Python.
Python numpy.zeros() Exempel
import numpy as np np.zeros((2,2))
Produktion:
array([[0., 0.], [0., 0.]])
Exempel på numpy zero med Datatype
import numpy as np np.zeros((2,2), dtype=np.int16)
Produktion:
array([[0, 0], [0, 0]], dtype=int16)
Vad är numpy.ones()?
np.ones() funktion används för att skapa en matris full av ettor. numpy.ones() in Python kan användas när du initierar vikterna under den första iterationen i TensorFlow och andra statistiska uppgifter.
Python numpy.ones() Syntax
numpy.ones(shape, dtype=float, order='C')
Python numpy.ones() Parametrar
Här,
- Forma: är formen på np.ones Python array
- Dtyp: är datatypen i numpy ones. Det är valfritt. Standardvärdet är float64
- Ordersammanställning: Standard är C vilket är en viktig radstil.
Python numpy.ones() 2D-array med datatypexempel
import numpy as np np.ones((1,2,3), dtype=np.int16)
Produktion:
array([[[1, 1, 1], [1, 1, 1]]], dtype=int16)
numpy.reshape()-funktionen i Python
Python NumPy omforma funktion används för att forma en array utan att ändra dess data. I vissa tillfällen kan du behöva omforma data från bred till lång. Du kan använda funktionen np.reshape för detta.
Syntax för np.reshape()
numpy.reshape(a, newShape, order='C')
Här,
a: Array som du vill omforma
newShape: De nya önskningarna formar
Ordersammanställning: Standard är C vilket är en viktig radstil.
Exempel på NumPy Reshape
import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) e.reshape(3,2)
Produktion:
// Before reshape [[1 2 3] [4 5 6]]
//After Reshape array([[1, 2], [3, 4], [5, 6]])
numpy.flatten() in Python
Python NumPy Flatten funktion används för att returnera en kopia av arrayen i endimensionell. När du hanterar något neuralt nätverk som convnet, måste du platta till arrayen. Du kan använda funktionerna np.flatten() för detta.
Syntax för np.flatten()
numpy.flatten(order='C')
Här,
Ordersammanställning: Standard är C vilket är en viktig radstil.
Exempel på NumPy Flatten
e.flatten()
Produktion:
array([1, 2, 3, 4, 5, 6])
Vad är numpy.hstack() i Python?
Numpy.hstack är en funktion i Python som används för att stapla sekvenser av inmatningsmatriser horisontellt för att skapa en enda matris. Med funktionen hstack() kan du lägga till data horisontellt. Det är en mycket bekväm funktion i NumPy.
Låt oss studera hstack in Python med ett exempel:
Exempelvis:
## Horitzontal Stack import numpy as np f = np.array([1,2,3]) g = np.array([4,5,6]) print('Horizontal Append:', np.hstack((f, g)))
Produktion:
Horizontal Append: [1 2 3 4 5 6]
Vad är numpy.vstack() i Python?
Numpy.vstack är en funktion i Python som används för att vertikalt stapla sekvenser av inmatningsmatriser för att skapa en enda matris. Med funktionen vstack() kan du lägga till data vertikalt.
Låt oss studera det med ett exempel:
Exempelvis:
## 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)))
Produktion:
Vertical Append: [[1 2 3] [4 5 6]]
Efter att ha studerat NumPy vstack och hstack, låt oss lära oss ett exempel för att generera slumptal i NumPy.
Generera slumpmässigt Numbers använder NumPy
För att generera slumptal för Gaussisk distribution, använd:
numpy.random.normal(loc, scale, size)
Här,
- Plats: den elaka. Distributionscentrum
- Skala: standardavvikelse.
- Storlek: antal returer
Exempelvis:
## Generate random nmber from 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]
Om den plottas kommer fördelningen att likna följande plot
NumPy Asarray-funktion
Funktionen asarray() används när du vill konvertera en indata till en array. Ingången kan vara en listor, tupel, ndarray, etc.
Syntax:
numpy.asarray(data, dtype=None, order=None)[source]
Här,
datum: Data som du vill konvertera till en array
dtype: Detta är ett valfritt argument. Om inte specificerat, härleds datatypen från indata
Ordersammanställning: Standard är C vilket är en viktig radstil. Ett annat alternativ är F (Fortan-stil)
Exempelvis:
Betrakta följande 2D-matris med fyra rader och fyra kolumner fyllda med 1
import numpy as np A = np.matrix(np.ones((4,4)))
Om du vill ändra värdet på matrisen kan du inte. Anledningen är att det inte går att ändra en kopia.
np.array(A)[2]=2 print(A) [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]]
Matrix är oföränderlig. Du kan använda asarray om du vill lägga till modifiering i den ursprungliga arrayen. Låt oss se om någon förändring sker när du vill ändra värdet på de tredje raden med värdet 2.
np.asarray(A)[2]=2 print(A)
Kodförklaring:
np.asarray(A): omvandlar matrisen A till en matris
[2]: välj den tredje raden
Produktion:
[[1. 1. 1. 1.] [1. 1. 1. 1.] [2. 2. 2. 2.] # new value [1. 1. 1. 1.]]
Vad är numpy.arange()?
numpy.arange() är en inbyggd numpy-funktion som returnerar ett ndarray-objekt som innehåller jämnt fördelade värden inom ett definierat intervall. Till exempel vill du skapa värden från 1 till 10; du kan använda np.arange() i Python funktion.
Syntax:
numpy.arange(start, stop, step, dtype)
Python NumPy arange parametrar:
- Start: Start av intervall för np.arrange in Python funktion.
- Sluta: Slut på intervall.
- Steg: Avstånd mellan värden. Standardsteg är 1.
- Dtyp: Är en typ av arrayutgång för NumPy arange in Python.
Exempelvis:
import numpy np np.arange(1, 11)
Produktion:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Exempelvis:
Om du vill ändra steget i detta NumPy arrangerar funktionen in Python till exempel kan du lägga till ett tredje nummer inom parentes. Det kommer att ändra steget.
import numpy np np.arange(1, 14, 4)
Produktion:
array([ 1, 5, 9, 13])
NumPy Linspace-funktion
Linspace ger jämnt fördelade prover.
Syntax:
numpy.linspace(start, stop, num, endpoint)
Här,
- Start: Startvärde för sekvensen
- Sluta: Slutvärde för sekvensen
- I: Antal prover att generera. Standard är 50
- Slutpunkt: Om True (standard) är stopp det sista värdet. Om False ingår inte stoppvärde.
Exempelvis:
Den kan till exempel användas för att skapa 10 värden från 1 till 5 jämnt fördelade.
import numpy as np np.linspace(1.0, 5.0, num=10)
Produktion:
array([1. , 1.44444444, 1.88888889, 2.33333333, 2.77777778, 3.22222222, 3.66666667, 4.11111111, 4.55555556, 5. ])
Om du inte vill inkludera den sista siffran i intervallet kan du ställa in endpoint till false
np.linspace(1.0, 5.0, num=5, endpoint=False)
Produktion:
array([1. , 1.8, 2.6, 3.4, 4.2])
LogSpace NumPy-funktion in Python
LogSpace returnerar jämna mellanrum på en loggskala. Logspace har samma parametrar som np.linspace.
Syntax:
numpy.logspace(start, stop, num, endpoint)
Exempelvis:
np.logspace(3.0, 4.0, num=4)
Produktion:
array([ 1000. , 2154.43469003, 4641.58883361, 10000. ])
Slutligen, om du vill kontrollera minnesstorleken för ett element i en array, kan du använda objektstorlek
x = np.array([1,2,3], dtype=np.complex128) x.itemsize
Produktion:
16
Varje element tar 16 byte.
Indexering och skärning Python
Att skiva data är trivialt med numpy. Vi delar matrisen "e". Observera att i Python, måste du använda parenteser för att returnera raderna eller kolumnerna
Exempelvis:
## Slice import numpy as np e = np.array([(1,2,3), (4,5,6)]) print(e) [[1 2 3] [4 5 6]]
Kom ihåg att med numpy börjar den första arrayen/kolumnen på 0.
## First column print('First row:', e[0]) ## Second col print('Second row:', e[1])
Produktion:
First row: [1 2 3] Second row: [4 5 6]
In Python, liksom många andra språk,
- Värdena före kommatecken står för raderna
- Värdet på rätterna står för kolumnerna.
- Om du vill välja en kolumn måste du lägga till : före kolumnindexet.
- : betyder att du vill ha alla rader från den valda kolumnen.
print('Second column:', e[:,1])
Second column: [2 5]
För att returnera de två första värdena på den andra raden. Du använder : för att välja alla kolumner upp till den andra
## Second Row, two values print(e[1, :2]) [4 5]
Statistiska funktioner i Python
NumPy har en hel del användbara statistiska funktioner för att hitta minimum, maximum, percentil standardavvikelse och varians, etc från de givna elementen i arrayen. Funktionerna förklaras enligt följande −
Numpy är utrustad med den robusta statistiska funktionen som listas nedan
Funktion | numpy |
---|---|
Min | np.min() |
Max | np.max() |
Betyda | np.mean() |
median | np.median() |
Standardavvikelse | np.std() |
Tänk på följande Array:
Exempelvis:
import numpy as np normal_array = np.random.normal(5, 0.5, 10) print(normal_array)
Produktion:
[5.56171852 4.84233558 4.65392767 4.946659 4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]
Exempel på NumPy Statistisk funktion
### 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))
Produktion:
4.467042435266913 5.612113171990201 4.934841002270593 4.846995625786663 0.3875019367395316
Vad är numpy dot-produkt?
Numpy.dot produkt är ett kraftfullt bibliotek för matrisberäkning. Till exempel kan du beräkna punktprodukten med np.dot. Numpy.dot-produkten är prickprodukten av a och b. numpy.dot() in Python hanterar 2D-matriserna och utför matrismultiplikationer.
Syntax:
numpy.dot(x, y, out=None)
parametrar
Här,
x, y: Inmatningsmatriser. x och y bör båda vara 1-D eller 2-D för att funktionen np.dot() ska fungera
ut: Detta är utmatningsargumentet för 1-D-arrayskalär som ska returneras. Annars bör ndarray returneras.
Returer
Funktionen numpy.dot() in Python returnerar en punktprodukt av två matriser x och y. Funktionen dot() returnerar en skalär om både x och y är 1-D; annars returnerar den en array. Om 'ut' ges så returneras det.
höjningar
Prick in produkten Python höjer ett ValueError-undantag om den sista dimensionen av x inte har samma storlek som den näst sista dimensionen av y.
Exempelvis:
## 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)
Produktion:
14
Matrix Multiplikation in Python
Funktionen Numpy matmul() används för att returnera matrisprodukten av 2 arrayer. Så här fungerar det
1) 2D-matriser, den returnerar normal produkt
2) Mått > 2, produkten behandlas som en matrisstapel
3) 1-D-matrisen befordras först till en matris och sedan beräknas produkten
Syntax:
numpy.matmul(x, y, out=None)
Här,
x, y: Inmatningsmatriser. skalärer inte tillåtna
ut: Detta är valfri parameter. Vanligtvis lagras utdata i ndarray
Exempelvis:
På samma sätt kan du beräkna matrismultiplikation med np.matmul
### Matmul: matruc product of two arrays h = [[1,2],[3,4]] i = [[5,6],[7,8]] ### 1*5+2*7 = 19 np.matmul(h, i)
Produktion:
array([[19, 22], [43, 50]])
determinanten
Sist men inte minst, om du behöver beräkna determinanten kan du använda np.linalg.det(). Observera att numpy tar hand om dimensionen.
Exempelvis:
## Determinant 2*2 matrix ### 5*8-7*6np.linalg.det(i)
Produktion:
-2.000000000000005
Sammanfattning
- Python är ett bibliotek med öppen källkod tillgängligt i Python, som hjälper till i matematiska, vetenskapliga, tekniska och datavetenskaplig programmering.
- numpy.zeros() eller np.zeros Python funktion används för att skapa en matris full av nollor.
- numpy.ones() in Python kan användas när du initierar vikterna under den första iterationen i TensorFlow och andra statistiska uppgifter.
- Python NumPy Reshape-funktionen används för att forma en array utan att ändra dess data.
- Python Funktionen NumPy Flatten används för att returnera en kopia av arrayen i en dimension.
- Numpy.hstack är en funktion i Python som används för att stapla sekvenser av inmatningsmatriser horisontellt för att skapa en enda matris.
- Numpy.vstack är en funktion i Python som används för att vertikalt stapla sekvenser av inmatningsmatriser för att skapa en enda matris.
- numpy.arange() är en inbyggd numpy-funktion som returnerar ett ndarray-objekt som innehåller jämnt fördelade värden inom ett definierat intervall.
- Numpy.dot-produkten är ett kraftfullt bibliotek för matrisberäkning.
- Funktionen Numpy matmul() används för att returnera matrisprodukten av 2 arrayer.