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

Exempel för att generera slumpmässigt Numbers använder NumPy
Exempel för att generera slumpmässigt Numbers använder NumPy

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.