Python NumPy-zelfstudie voor beginners: leer met voorbeelden

Wat is NumPy in Python?

NumPy is een open source-bibliotheek beschikbaar in Python, die helpt bij het programmeren op wiskundig, wetenschappelijk, technisch en datawetenschappelijk gebied. Het is een zeer nuttige bibliotheek om wiskundige en statistische bewerkingen in Python uit te voeren. Het werkt perfect voor multidimensionale arrays en matrixvermenigvuldiging. Het is eenvoudig te integreren met C/C + + en Fortran.

Voor elk wetenschappelijk project is NumPy het hulpmiddel om dit te weten. Het is gebouwd om te werken met de N-dimensionale array, lineaire algebra, willekeurig getal, Fourier-transformatie, enz.

NumPy is een programmeertaal die zich bezighoudt met multidimensionale arrays en matrices. Naast de arrays en matrices ondersteunt NumPy een groot aantal wiskundige bewerkingen. In dit deel bespreken we de essentiële functies die u moet kennen voor de tutorial over 'TensorFlow. '

Waarom NumPy gebruiken?

NumPy is geheugenefficiëntie, wat betekent dat het de enorme hoeveelheid gegevens kan verwerken die toegankelijker is dan welke andere bibliotheek dan ook. Bovendien is NumPy erg handig om mee te werken, vooral voor het vermenigvuldigen en hervormen van matrixen. Bovendien is NumPy snel. In feite leren TensorFlow en Scikit de NumPy-array te gebruiken om de matrixvermenigvuldiging in de backend te berekenen.

Hoe NumPy te installeren

Raadpleeg onze tutorial om de NumPy-bibliotheek te installeren Hoe TensorFlow te installeren. NumPy wordt standaard geïnstalleerd met Anaconda.

In afgelegen gevallen is NumPy niet geïnstalleerd-

Je kunt NumPy installeren met Anaconda:

conda install -c anaconda numpy
  • In Jupyter Notitieboekje :
import sys
!conda install --yes --prefix {sys.prefix} numpy

Importeer NumPy en controleer de versie

Het commando om numpy te importeren is:

import numpy as np

Bovenstaande code hernoemt de Numpy-naamruimte naar np. Hierdoor kunnen we de Numpy-functie, -methoden en -attributen vooraf laten gaan door "np" in plaats van "numpy" te typen. Het is de standaardsnelkoppeling die je in de numpy-literatuur tegenkomt

Gebruik de onderstaande opdracht om uw geïnstalleerde versie van NumPy te controleren:

print (np.__version__)

Output:

1.18.0

Wat is Python NumPy-array?

NumPy-arrays lijken een beetje op Python-lijsten, maar zijn tegelijkertijd heel verschillend. Voor degenen onder u die nieuw zijn in het onderwerp: laten we verduidelijken wat het precies is en waar het goed voor is.

Zoals de naam al verraadt, is een NumPy-array een centrale gegevensstructuur van de numpy-bibliotheek. De naam van de bibliotheek is eigenlijk een afkorting voor “Numeric Python” of “Numerical Python”.

Een NumPy-array maken

De eenvoudigste manier om een ​​array in Numpy te maken is door gebruik te maken van Python-lijst

myPythonList = [1,9,8,3]

Om de Python-lijst naar een numpy-array te converteren met behulp van het object np.array.

numpy_array_from_list = np.array(myPythonList)

Om de inhoud van de lijst weer te geven

numpy_array_from_list

Output:

array([1, 9, 8, 3])

In de praktijk is het niet nodig om een ​​Python-lijst aan te geven. De werking kan worden gecombineerd.

a  = np.array([1,9,8,3])

NOTITIE: Numpy-documentatie vermeldt het gebruik van np.ndarray om een ​​array te maken. Dit is echter de aanbevolen methode.

Je kunt ook een numpy-array maken van een Tuple.

Wiskundige bewerkingen op een array

U kunt wiskundige bewerkingen uitvoeren, zoals optellen, aftrekken, delen en vermenigvuldigen op een array. De syntaxis is de arraynaam gevolgd door de bewerking (+.-,*,/) gevolgd door de operand

Voorbeeld:

numpy_array_from_list + 10

Output:

array([11, 19, 18, 13])

Deze bewerking voegt 10 toe aan elk element van de numpy-array.

Vorm van matrix

U kunt de vorm van de array controleren door de objectvorm vooraf te laten gaan door de naam van de array. Op dezelfde manier kunt u het type controleren met dtypes.

import numpy as np
a  = np.array([1,2,3])
print(a.shape)
print(a.dtype)

(3,)
int64

Een geheel getal is een waarde zonder decimaal. Als u een array met decimalen maakt, verandert het type in float.

#### Different type
b  = np.array([1.1,2.0,3.2])
print(b.dtype)

float64

2 dimensiematrix

U kunt een dimensie toevoegen met een “,”coma

Merk op dat het tussen haakjes [] moet staan

### 2 dimension
c = np.array([(1,2,3),
              (4,5,6)])
print(c.shape)
(2, 3)

3 dimensiematrix

Hogere afmetingen kunnen als volgt worden geconstrueerd:

### 3 dimension
d = np.array([
    [[1, 2,3],
        [4, 5, 6]],
    [[7, 8,9],
        [10, 11, 12]]
])
print(d.shape)
(2, 2, 3)
Objectief Code
Array maken array([1,2,3])
druk de vorm af array([.]).vorm

Wat is numpy.zeros()?

numpy.nullen() of np.zeros De Python-functie wordt gebruikt om een ​​matrix vol nullen te maken. numpy.zeros() in Python kan worden gebruikt wanneer u de gewichten initialiseert tijdens de eerste iteratie in TensorFlow en andere statistische taken.

numpy.zeros() functie Syntaxis

numpy.zeros(shape, dtype=float, order='C')

Python numpy.zeros()-parameters

Hier

  • Vorm: is de vorm van de numpy nul-array
  • D-type: is het gegevenstype in numpige nullen. Het is optioneel. De standaardwaarde is float64
  • Bestelling: Standaard is C, wat een essentiële rijstijl is voor numpy.zeros() in Python.

Python numpy.zeros() Voorbeeld

import numpy as np
np.zeros((2,2))

Output:

array([[0., 0.],
          [0., 0.]])

Voorbeeld van numpy nul met gegevenstype

import numpy as np
np.zeros((2,2), dtype=np.int16)

Output:

array([[0, 0],
         [0, 0]], dtype=int16)

Wat is numpy.ones()?

np.ones() functie wordt gebruikt om een ​​matrix vol enen te creëren. numpy.ones() in Python kan worden gebruikt wanneer u de gewichten initialiseert tijdens de eerste iteratie in TensorFlow en andere statistische taken.

Python numpy.ones()-syntaxis

numpy.ones(shape, dtype=float, order='C')

Python numpy.ones()-parameters

Hier

  • Vorm: is de vorm van de np.ones Python-array
  • D-type: is het gegevenstype in numpy. Het is optioneel. De standaardwaarde is float64
  • Bestelling: Standaard is C, wat een essentiële rijstijl is.

Python numpy.ones() 2D-array met voorbeeld van gegevenstype

import numpy as np
np.ones((1,2,3), dtype=np.int16)

Output:

array([[[1, 1, 1],        
       [1, 1, 1]]], dtype=int16)

numpy.reshape()-functie in Python

Python NumPy opnieuw vormgeven functie wordt gebruikt om een ​​array vorm te geven zonder de gegevens ervan te wijzigen. In sommige gevallen moet u de gegevens mogelijk opnieuw vormgeven van breed naar lang. Hiervoor kunt u de functie np.reshape gebruiken.

Syntaxis van np.reshape()

numpy.reshape(a, newShape, order='C')

Hier

a: Array waarvan u de vorm wilt wijzigen

nieuwe vorm: De nieuwe verlangens vormen zich

Bestelling: Standaard is C, wat een essentiële rijstijl is.

Voorbeeld van NumPy Reshape

import numpy as np
e  = np.array([(1,2,3), (4,5,6)])
print(e)
e.reshape(3,2)

Output:

 // Before reshape
[[1 2 3] 
 [4 5 6]]
//After Reshape
array([[1, 2],       
	[3, 4],       
	[5, 6]])

numpy.flatten() in Python

Python NumPy plat functie wordt gebruikt om een ​​kopie van de array in één dimensie terug te geven. Als je te maken hebt met een neuraal netwerk zoals convnet, moet je de array plat maken. U kunt hiervoor de functies np.flatten() gebruiken.

Syntaxis van np.flatten()

numpy.flatten(order='C')

Hier
Bestelling: Standaard is C, wat een essentiële rijstijl is.

Voorbeeld van NumPy Flatten

e.flatten()

Output:

array([1, 2, 3, 4, 5, 6])

Wat is numpy.hstack() in Python?

Numpy.hstack is een functie in Python die wordt gebruikt om reeksen invoerarrays horizontaal te stapelen om zo één array te maken. Met de functie hstack() kunt u gegevens horizontaal toevoegen. Het is een erg handige functie in NumPy.

Laten we hstack in Python bestuderen met een voorbeeld:

Voorbeeld:

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

Output:

Horizontal Append: [1 2 3 4 5 6]

Wat is numpy.vstack() in Python?

Numpy.vstack is een functie in Python die wordt gebruikt om reeksen invoerarrays verticaal te stapelen om zo één array te maken. Met de functie vstack() kunt u gegevens verticaal toevoegen.

Laten we het bestuderen met een voorbeeld:

Voorbeeld:

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

Output:

Vertical Append: [[1 2 3]
 [4 5 6]]

Laten we, na het bestuderen van NumPy vstack en hstack, een voorbeeld leren van het genereren van willekeurige getallen in NumPy.

Genereer willekeurige getallen met NumPy

Om willekeurige getallen voor de Gaussische verdeling te genereren, gebruikt u:

numpy.random.normal(loc, scale, size)

Hier

  • Plaats: de betekenis. Het distributiecentrum
  • Scale: standaardafwijking.
  • Maat: aantal retourzendingen

Voorbeeld:

## 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]

Indien geplot, zal de verdeling vergelijkbaar zijn met following perceel

Voorbeeld om willekeurige getallen te genereren met NumPy
Voorbeeld om willekeurige getallen te genereren met NumPy

NumPy Asarray-functie

De functie asarray() wordt gebruikt wanneer u een invoer naar een array wilt converteren. De invoer kan een list, tuple, ndarray, etc. zijn.

Syntax:

numpy.asarray(data, dtype=None, order=None)[source]

Hier

gegevens: gegevens die u naar een array wilt converteren

dtype: Dit is een optioneel argument. Indien niet gespecificeerd, wordt het gegevenstype afgeleid uit de invoergegevens

Bestelling: Standaard is C, wat een essentiële rijstijl is. Andere optie is F (Fortan-stijl)

Voorbeeld:

Denk eens aan het volgendewing 2D-matrix met vier rijen en vier kolommen gevuld met 1

import numpy as np
A = np.matrix(np.ones((4,4)))

Als u de waarde van de matrix wilt wijzigen, kunt u dat niet doen. De reden hiervoor is dat het niet mogelijk is een kopie te wijzigen.

np.array(A)[2]=2
print(A)			
[[1. 1. 1. 1.]
 [1. 1. 1. 1.] 
 [1. 1. 1. 1.] 
 [1. 1. 1. 1.]]

Matrix is ​​onveranderlijk. U kunt asarray gebruiken als u wijzigingen in de oorspronkelijke array wilt toevoegen. Laten we eens kijken of er een verandering optreedt wanneer u de waarde van de derde rij met de waarde 2 wilt wijzigen.

np.asarray(A)[2]=2
print(A)

Code Verklaring:

np.asarray(A): converteert matrix A naar een array

[2]: selecteer de derde rij

Output:

[[1. 1. 1. 1.] 
      [1. 1. 1. 1.] 
      [2. 2. 2. 2.] # new value 
      [1. 1. 1. 1.]]

Wat is numpy.arange()?

numpy.arange() is een ingebouwde numpy-functie die een ndarray-object retourneert met gelijkmatig verdeelde waarden binnen een gedefinieerd interval. U wilt bijvoorbeeld waarden van 1 tot 10 creëren; je kunt np.arange() gebruiken in de Python-functie.

Syntax:

numpy.arange(start, stop, step, dtype)

Python NumPy arange-parameters:

  • Start: Begin van interval voor np.arange in Python-functie.
  • stop: Einde van interval.
  • Stap voor: Afstand tussen waarden. De standaardstap is 1.
  • D-type: Is een type array-uitvoer voor NumPy-arrange in Python.

Voorbeeld:

import numpy np
np.arange(1, 11)

Output:

array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])

Voorbeeld:

Als je de stap in deze NumPy arange-functie in het Python-voorbeeld wilt wijzigen, kun je een derde getal tussen haakjes toevoegen. Het zal de stap veranderen.

import numpy np
np.arange(1, 14, 4)

Output:

array([ 1,  5,  9, 13])

NumPy Linspace-functie

Linspace geeft gelijkmatig verdeelde monsters.

Syntax:

numpy.linspace(start, stop, num, endpoint)

Hier

  • Start: Startwaarde van de reeks
  • stop: Eindwaarde van de reeks
  • In: Aantal monsters dat moet worden gegenereerd. Standaard is 50
  • Endpoint: Indien True (standaard), is stop de laatste waarde. Indien False, wordt de stopwaarde niet opgenomen.

Voorbeeld:

Het kan bijvoorbeeld worden gebruikt om 10 waarden van 1 tot 5 gelijkmatig verdeeld te creëren.

import numpy as np
np.linspace(1.0, 5.0, num=10)

Output:

array([1.        , 1.44444444, 1.88888889, 2.33333333, 2.77777778,       3.22222222, 3.66666667, 4.11111111, 4.55555556, 5.        ])

Als u het laatste cijfer in het interval niet wilt opnemen, kunt u het eindpunt instellen op false

np.linspace(1.0, 5.0, num=5, endpoint=False)

Output:

array([1. , 1.8, 2.6, 3.4, 4.2])

LogSpace NumPy-functie in Python

LogSpace retourneert even verdeelde getallen op een logschaal. Logspace heeft dezelfde parameters als np.linspace.

Syntax:

numpy.logspace(start, stop, num, endpoint)

Voorbeeld:

np.logspace(3.0, 4.0, num=4)

Output:

array([ 1000. ,  2154.43469003,  4641.58883361, 10000.        ])

Als u ten slotte de geheugengrootte van een element in een array wilt controleren, kunt u itemsize gebruiken

x = np.array([1,2,3], dtype=np.complex128)
x.itemsize

Output:

16

Elk element neemt 16 bytes in beslag.

Indexeren en segmenteren in Python

Het segmenteren van gegevens is triviaal met numpy. We snijden de matrix “e”. Merk op dat je in Python de brackets om de rijen of kolommen terug te geven
Voorbeeld:

## Slice
import numpy as np
e  = np.array([(1,2,3), (4,5,6)])
print(e)
[[1 2 3]
 [4 5 6]]

Onthoud dat bij numpy de eerste array/kolom begint bij 0.

## First column
print('First row:', e[0])

## Second col
print('Second row:', e[1])

Output:

First row: [1 2 3]
Second row: [4 5 6]

In Python, net als veel andere talen,

  • De waarden vóór de komma staan ​​voor de rijen
  • De waarde op de rechten staat voor de kolommen.
  • Als u een kolom wilt selecteren, moet u : vóór de kolomindex toevoegen.
  • : betekent dat u alle rijen uit de geselecteerde kolom wilt hebben.
print('Second column:', e[:,1])
Second column: [2 5]

Om de eerste twee waarden van de tweede rij te retourneren. Je gebruikt : om alle kolommen tot op de seconde te selecteren

## Second Row, two values
  print(e[1, :2])			
  [4 5]

Statistische functies in Python

NumPy heeft een flink aantal nuttige statistische functies voor het vinden van minimum, maximum, percentielstandaarddeviatie en variantie, enz. Uit de gegeven elementen in de array. De functies worden als volgt uitgelegd −

Numpy is uitgerust met de robuuste statistische functie zoals hieronder vermeld

Functie numpy
min np.min()
Max np.max()
Gemiddelde np.mean()
Mediaan np.mediaan()
Standaarddeviatie np.std()

Denk eens aan het volgendewing Array:

Voorbeeld:

import numpy as np
normal_array = np.random.normal(5, 0.5, 10)
print(normal_array)

Output:

[5.56171852 4.84233558 4.65392767 4.946659   4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]

Voorbeeld van NumPy Statistische functie

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

Output:

4.467042435266913
5.612113171990201
4.934841002270593
4.846995625786663
0.3875019367395316

Wat is een numpy dot-product?

Numpy.dot-product is een krachtige bibliotheek voor matrixberekening. U kunt bijvoorbeeld het puntproduct berekenen met np.dot. Numpy.dot-product is het puntproduct van a en b. numpy.dot() in Python verwerkt de 2D-arrays en voert matrixvermenigvuldigingen uit.

Syntax:

numpy.dot(x, y, out=None)

parameters

Hier

x, y: Invoerarrays. x en y moeten beide 1D of 2D zijn om de functie np.dot() te laten werken

uit: Dit is het uitvoerargument voor het retourneren van een scalaire 1D-array. Anderwise ndarray moet worden geretourneerd.

Retourneren

De functie numpy.dot() in Python retourneert een Dot-product van twee arrays x en y. De functie dot() retourneert een scalair als zowel x als y 1-D zijn; anderwise, retourneert het een array. Als 'out' wordt gegeven, wordt het geretourneerd.

Verhoogt

Puntproduct in Python genereert een ValueError-uitzondering als de laatste dimensie van x niet dezelfde grootte heeft als de voorlaatste dimensie van y.

Voorbeeld:

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

Output:

14

Matrixvermenigvuldiging in Python

De functie Numpy matmul() wordt gebruikt om het matrixproduct van 2 arrays te retourneren. Hier is hoe het werkt

1) 2D-arrays, het retourneert een normaal product

2) Afmetingen > 2, het product wordt behandeld als een matrixstapel

3) 1-D-array is de eerste promoomgezet in een matrix en vervolgens wordt het product berekend

Syntax:

numpy.matmul(x, y, out=None)

Hier

x, y: Invoerarrays. scalairen zijn niet toegestaan

uit: Dit is een optionele parameter. Meestal wordt de uitvoer opgeslagen in ndarray

Voorbeeld:

Op dezelfde manier kunt u de vermenigvuldiging van matrices berekenen met 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)

Output:

array([[19, 22],       
            [43, 50]])

determinant

Als laatste, maar daarom niet minder belangrijk, kunt u np.linalg.det() gebruiken als u de determinant wilt berekenen. Merk op dat numpy voor de dimensie zorgt.

Voorbeeld:

## Determinant 2*2 matrix
### 5*8-7*6np.linalg.det(i)

Output:

-2.000000000000005

Samengevat

  • Python is een open source-bibliotheek beschikbaar in Python, die helpt bij wiskundige, wetenschappelijke, technische en datawetenschappelijk programmeren.
  • numpy.zeros() of np.zeros De Python-functie wordt gebruikt om een ​​matrix vol nullen te maken.
  • numpy.ones() in Python kan worden gebruikt wanneer u de gewichten initialiseert tijdens de eerste iteratie in TensorFlow en andere statistische taken.
  • De Python NumPy Reshape-functie wordt gebruikt om een ​​array vorm te geven zonder de gegevens ervan te wijzigen.
  • De Python NumPy Flatten-functie wordt gebruikt om een ​​kopie van de array in één dimensie te retourneren.
  • Numpy.hstack is een functie in Python die wordt gebruikt om reeksen invoerarrays horizontaal te stapelen om zo één array te maken.
  • Numpy.vstack is een functie in Python die wordt gebruikt om reeksen invoerarrays verticaal te stapelen om zo één array te maken.
  • numpy.arange() is een ingebouwde numpy-functie die een ndarray-object retourneert met gelijkmatig verdeelde waarden binnen een gedefinieerd interval.
  • Het Numpy.dot-product is een krachtige bibliotheek voor matrixberekeningen.
  • De functie Numpy matmul() wordt gebruikt om het matrixproduct van 2 arrays te retourneren.