Python NumPy-zelfstudie voor beginners: leer met voorbeelden
Waar zit NumPy in? Python?
NumPy is een open source-bibliotheek beschikbaar in Python, die helpt bij wiskundige, wetenschappelijke, technische en data science-programmering. Het is een zeer nuttige bibliotheek om wiskundige en statistische bewerkingen uit te voeren in Python. 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 werkt met multidimensionale arrays en matrices. Naast 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 lijstjes, maar toch heel verschillend tegelijk. 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 'Numeriek 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 aangifte te doen Python Lijst. De bewerking 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.
wiskundig Operaties 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])
Met deze bewerking wordt aan elk element van de numpy-array 10 toegevoegd.
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.nul Python functie wordt gebruikt om een matrix vol nullen te creëren. 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
- Bestel: 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 reeks
- D-type: is het gegevenstype in numpy. Het is optioneel. De standaardwaarde is float64
- Bestel: 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
Bestel: 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
Bestel: 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 dat wordt gebruikt om reeksen invoerarrays horizontaal te stapelen om een enkele array te maken. Met de functie hstack() kunt u gegevens horizontaal toevoegen. Het is een erg handige functie in NumPy.
Laten we hstack bestuderen Python 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 een enkele 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]]
Nadat we NumPy vstack en hstack hebben bestudeerd, gaan we een voorbeeld bekijken om willekeurige getallen te genereren in NumPy.
Willekeurig genereren Numbers met behulp van 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.
- Grootte: 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]
Als de verdeling wordt uitgezet, zal deze vergelijkbaar zijn met de volgende grafiek
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
Bestel: Standaard is C, wat een essentiële rijstijl is. Andere optie is F (Fortan-stijl)
Voorbeeld:
Beschouw de volgende 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 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-arrangement Python.
Voorbeeld:
import numpy np np.arange(1, 11)
Output:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Voorbeeld:
Als u de stap in deze NumPy-arrange-functie wilt wijzigen in Python U kunt bijvoorbeeld 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 gespreide 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 Python
Het segmenteren van gegevens is triviaal met numpy. We snijden de matrix “e”. Merk op dat, in Python, moet u de haakjes gebruiken 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() |
Beschouw de volgende matrix:
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 1-D array scalar die moet worden geretourneerd. Anders moet ndarray worden geretourneerd.
Retourneren
De functie numpy.dot() in Python retourneert een dot-product van twee arrays x en y. De dot()-functie retourneert een scalair als zowel x als y 1-D zijn; anders retourneert het een array. Als 'out' wordt gegeven, wordt het geretourneerd.
Verhoogt
Stip het product erin 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 wordt eerst gepromoveerd tot 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
Samenvatting
- Python is een open source-bibliotheek beschikbaar in Python, wat helpt bij wiskundige, wetenschappelijke, technische en datawetenschappelijk programmeren.
- numpy.zeros() of np.zeros Python functie wordt gebruikt om een matrix vol nullen 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 De NumPy Reshape-functie wordt gebruikt om een array vorm te geven zonder de gegevens ervan te wijzigen.
- Python De NumPy Flatten-functie wordt gebruikt om een kopie van de array in één dimensie te retourneren.
- Numpy.hstack is een functie in Python dat wordt gebruikt om reeksen invoerarrays horizontaal te stapelen om een enkele array te maken.
- Numpy.vstack is een functie in Python die wordt gebruikt om reeksen invoerarrays verticaal te stapelen om een enkele 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.