Python NumPy-handleiding voor beginners
โก Slimme samenvatting
NumPy is de basis Python NumPy is een bibliotheek voor numerieke berekeningen, geschikt voor arrays, matrices, lineaire algebra en willekeurige steekproeven. Deze NumPy-tutorial behandelt de installatie, het aanmaken van arrays en het herschrijven van arrays.ping, slicen, statistiek en matrixberekeningen met een uitvoerbare code Python voorbeelden.

Waar zit NumPy in? Python?
NumPy is een open bron Python Bibliotheek voor wiskundige, wetenschappelijke, technische en datawetenschappelijke programmering. Het is een zeer nuttige bibliotheek voor wiskundige en statistische bewerkingen. PythonHet werkt perfect met multidimensionale arrays en matrixvermenigvuldiging, en integreert gemakkelijk met C.C++ en Fortran.
Voor elk wetenschappelijk project is NumPy hรฉt hulpmiddel. Het is ontwikkeld voor N-dimensionale arrays, lineaire algebra, het genereren van willekeurige getallen, Fourier-transformaties en nog veel meer.
NumPy geeft Python Uitstekende ondersteuning voor meerdimensionale arrays en matrices, plus een grote set wiskundige bewerkingen die erop kunnen worden uitgevoerd. In deze handleiding bespreken we de essentiรซle functies die u moet kennen voordat we verdergaan met de tutorial over 'TensorFlow. '
Waarom NumPy gebruiken?
NumPy is geheugenefficiรซnt, waardoor het grote hoeveelheden numerieke gegevens gemakkelijker kan verwerken dan pure Python-bibliotheken. Python lijsten. Het is ook erg handig voor matrixvermenigvuldiging en reshapingEn het is snel omdat het zware werk wordt uitbesteed aan gecompileerde C-routines. Sterker nog, bibliotheken zoals TensorFlow en PyTorch en Scikit-learn maken in hun backend gebruik van NumPy-arrays voor matrixberekeningen, waardoor NumPy de stille krachtbron is achter de meeste moderne data science- en AI-workflows.
Hoe NumPy te installeren
Raadpleeg onze handleiding voor het installeren van de NumPy-bibliotheek. Hoe TensorFlow te installeren. NumPy wordt standaard geรฏnstalleerd met Anaconda.
In het zeldzame geval dat NumPy niet is geรฏnstalleerd, kunt u een van de onderstaande opties gebruiken.
Je kunt NumPy installeren met Anaconda:
conda install -c anaconda numpy
- In Jupyter notebook:
import sys
!conda install --yes --prefix {sys.prefix} numpy
Pip-gebruikers kunnen installeren of upgraden met รฉรฉn enkel commando:
pip install --upgrade numpy
Importeer NumPy en controleer de versie
Het commando om numpy te importeren is:
import numpy as np
De bovenstaande regel hernoemt de NumPy-naamruimte naar npMet deze sneltoets kunt u NumPy-functies, -methoden en -attributen voorzien van het voorvoegsel . np. in plaats van typing numpy.En dit is de standaardconventie die je in het hele NumPy-ecosysteem aantreft.
Om te controleren welke versie van NumPy je hebt geรฏnstalleerd, gebruik je de onderstaande opdracht:
print(np.__version__)
Output:
2.1.3
NumPy 2.0 werd uitgebracht in juni 2024 en is de huidige stabiele hoofdserie. Als uw project nog steeds afhankelijk is van de 1.x API, kunt u deze vastzetten op... numpy<2 in uw requirements-bestand, omdat sommige verouderde aliassen zoals np.float werden verwijderd in versie 2.0.
Wat is een Python NumPy-array?
NumPy-arrays zien er ongeveer zo uit: Python Op het eerste gezicht lijken ze op lijsten, maar ze gedragen zich heel anders. Laten we voor lezers die nog niet bekend zijn met dit onderwerp even verduidelijken wat een ndarray is en waarom het belangrijk is.
Zoals de naam al doet vermoeden, is een NumPy-array de centrale datastructuur van de NumPy-bibliotheek. De naam zelf is een afkorting van "Numeriek". Python' of 'Numeriek Python", en de ndarray is een homogeen geheugenblok van vaste grootte met een bekende vorm en gegevenstype.
Een NumPy-array maken
De eenvoudigste manier om een โโarray in NumPy te maken, is door te beginnen met een array. Python Lijst.
myPythonList = [1,9,8,3]
Zet de Python lijst naar een NumPy-array met behulp van np.array.
numpy_array_from_list = np.array(myPythonList)
Toon de inhoud van de array.
numpy_array_from_list
Output:
array([1, 9, 8, 3])
In de praktijk is het niet nodig om een โโaangifte te doen Python Maak eerst een lijst. De twee stappen kunnen worden gecombineerd.
a = np.array([1,9,8,3])
NOTITIE: De NumPy-documentatie vermeldt dit ook. np.ndarray, Maar np.array Dit is de aanbevolen fabrieksinstelling voor dagelijks gebruik.
Je kunt op dezelfde manier ook een NumPy-array maken van een tuple.
wiskundig Operaties op een array
Je kunt wiskundige bewerkingen uitvoeren zoals optellen en aftrekken.tracDelen, vermenigvuldigen en delen op een array. De syntax is de naam van de array, gevolgd door de operator (+, -, *, /), gevolgd door de operand. Deze bewerkingen zijn gevectoriseerd, wat betekent dat NumPy ze op elk element toepast zonder expliciete vermelding. Python lus.
Voorbeeld:
numpy_array_from_list + 10
Output:
array([11, 19, 18, 13])
Deze bewerking telt 10 op bij elk element van de NumPy-array.
Vorm van matrix
Je kunt de vorm van een array controleren met de shape attribuut, dat je kunt benaderen door het aan de arraynaam toe te voegen. Op dezelfde manier kun je het type controleren met dtype.
import numpy as np a = np.array([1,2,3]) print(a.shape) print(a.dtype) (3,) int64
Een integer is een waarde zonder decimalen. Als je een array met decimalen aanmaakt, verandert het gegevenstype in float.
#### Different type b = np.array([1.1,2.0,3.2]) print(b.dtype) float64
2 dimensiematrix
Je kunt een dimensie toevoegen door een komma tussen haakjes te plaatsen.
Let op: de binnenste tuples moeten binnen de buitenste haakjes staan. [].
### 2 dimension c = np.array([(1,2,3), (4,5,6)]) print(c.shape) (2, 3)
3 dimensiematrix
Hogere dimensies kunnen op dezelfde manier 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() or np.zeros is een Python Functie die gebruikt wordt om een โโmatrix te maken die gevuld is met nullen. numpy.zeros() Dit is handig wanneer je gewichten moet initialiseren tijdens de eerste iteratie in TensorFlow of placeholder-buffers moet instellen voor andere statistische taken.
numpy.zeros() functie Syntaxis
numpy.zeros(shape, dtype=float, order='C')
Python numpy.zeros()-parameters
Hier
- Vorm: vorm van de NumPy nul-array.
- D-type: gegevenstype van de elementen. Dit is optioneel en de standaardwaarde is
float64. - Bestel: standaardwaarde is
C, wat de rijgeoriรซnteerde lay-out is die gebruikt wordt doornumpy.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 creรซert een matrix gevuld met enen. numpy.ones() in Python Dit is handig bij het initialiseren van gewichten tijdens de eerste iteratie in TensorFlow en voor andere statistische taken.
Python numpy.ones() Syntaxis
numpy.ones(shape, dtype=float, order='C')
Python numpy.ones()-parameters
Hier
- Vorm: vorm van de np.ones Python reeks.
- D-type: gegevenstype van de elementen. Dit is optioneel en de standaardwaarde is
float64. - Bestel: standaardwaarde is
C, wat de rijgeoriรซnteerde lay-out 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 Hiermee wordt de vorm van een array gewijzigd zonder de gegevens te veranderen. Mogelijk moet u gegevens van een breed naar een lang formaat omvormen, of van een 1D-vector naar een 2D-matrix converteren voordat u ze aan een model invoert. np.reshape Deze functie handelt dit af in รฉรฉn aanroep.
Syntaxis van np.reshape()
numpy.reshape(a, newShape, order='C')
Hier
a: de array die je wilt herschikken.
nieuwe vorm: de nieuwe gewenste vorm.
Bestel: standaardwaarde is C, de lay-out waarbij de letters in rijen worden gelezen.
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 Retourneert een kopie van de array, samengevouwen tot รฉรฉn dimensie. Bij het werken met neurale netwerken zoals convolutionele netwerken (convnets) is het vaak nodig om een โโbeeldtensor plat te maken voordat deze aan een dense laag wordt doorgegeven. np.flatten() Deze functie handelt dit af in รฉรฉn enkele aanroep.
Syntaxis van np.flatten()
numpy.flatten(order='C')
Hier
Bestel: standaardwaarde is C, de lay-out waarbij de letters in rijen worden gelezen.
Voorbeeld van NumPy Flatten
e.flatten()
Output:
array([1, 2, 3, 4, 5, 6])
Wat is numpy.hstack() in Python?
numpy.hstack is een Python functie die wordt gebruikt om reeksen invoerarrays horizontaal te stapelen tot รฉรฉn enkele array. Met hstack()Je voegt gegevens toe langs de kolom-as. Het is een erg handige functie in NumPy wanneer je featurevectoren naast elkaar wilt samenvoegen.
Laten we studeren hstack in Python met een voorbeeld.
Voorbeeld:
## Horizontal 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 Python functie die gebruikt wordt om reeksen invoerarrays verticaal te stapelen tot รฉรฉn enkele array. Met vstack()Je voegt gegevens toe langs de rij-as, wat handig is als je batches met monsters wilt combineren.
Laten we dit aan de hand van een voorbeeld bekijken.
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]]
Na het bestuderen van NumPy vstack en hstackLaten we eens kijken naar een voorbeeld dat willekeurige getallen genereert in NumPy.
Willekeurig genereren Numbers met behulp van NumPy
Om willekeurige getallen uit een Gaussische verdeling te genereren, gebruikt u:
numpy.random.normal(loc, scale, size)
Hier
- PlaatsHet gemiddelde. Het centrum van de verdeling.
- Scale: de standaardafwijking.
- Grootte: aantal geretourneerde monsters.
Voorbeeld:
## Generate random numbers from a 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 in een grafiek wordt weergegeven, ziet deze er ongeveer zo uit als in de volgende grafiek.

Merk op dat nieuwere code steeds vaker gebruikmaakt van de moderne generator-API. np.random.default_rng(), wat de aanbevolen vervanging is voor het oude model. np.random.normal aanroepen in NumPy 2.x.
NumPy Asarray-functie
De asarray() Deze functie zet een invoer om in een array. De invoer kan een lijst, tuple, ndarray of een vergelijkbare reeks zijn.
Syntax:
numpy.asarray(data, dtype=None, order=None)
Hier
gegevens: gegevens die je wilt omzetten naar een array.
dtype: optioneel. Indien niet gespecificeerd, wordt het gegevenstype afgeleid van de invoergegevens.
Bestel: standaardwaarde is C, de lay-out waarbij de kolommen in rijen worden geplaatst. De andere optie is F (Fortran-stijl kolom-hoofd).
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 je probeert een waarde in de matrix te wijzigen via np.arrayHet origineel wordt niet gewijzigd. De reden hiervoor is dat np.array Maakt een kopie van de matrix.
np.array(A)[2]=2 print(A) [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]]
De matrix blijft ongewijzigd. Gebruik asarray Wanneer je de oorspronkelijke array ter plekke wilt wijzigen. Laten we eens kijken wat er gebeurt als je de derde rij de waarde 2 geeft.
np.asarray(A)[2]=2 print(A)
Code Uitleg:
np.asarray(A) zet de matrix om A naar een arrayweergave.
[2] selecteert 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() `ndarray` is een ingebouwde NumPy-functie die een `ndarray` retourneert met gelijkmatig verdeelde waarden binnen een gedefinieerd interval. Om bijvoorbeeld waarden van 1 tot 10 te creรซren, kunt u de functie aanroepen. np.arange() in Python.
Syntax:
numpy.arange(start, stop, step, dtype)
Python NumPy arange-parameters:
- Start: begin van het interval voor
np.arangein Python. - stop: einde van het interval.
- Stap voor: afstand tussen waarden. De standaardstap is 1.
- D-type: het type van de uitvoerarray voor NumPy
arange.
Voorbeeld:
import numpy as np np.arange(1, 11)
Output:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Voorbeeld:
Om de stapgrootte in deze NumPy-code te wijzigen arange Voeg bijvoorbeeld een derde getal toe aan de haakjes. Dat verandert de stapgrootte.
import numpy as np np.arange(1, 14, 4)
Output:
array([ 1, 5, 9, 13])
NumPy Linspace-functie
linspace retourneert gelijkmatig verdeelde meetwaarden tussen twee eindpunten.
Syntax:
numpy.linspace(start, stop, num, endpoint)
Hier
- Start: beginwaarde van de reeks.
- stop: eindwaarde van de reeks.
- In: aantal te genereren samples. Standaard is 50.
- Endpoint: als
True(Standaard)stopis de laatste waarde. AlsFalse,stopis niet inbegrepen.
Voorbeeld:
Het kan bijvoorbeeld worden gebruikt om 10 gelijkmatig verdeelde waarden van 1 tot 5 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 niet in het interval wilt opnemen, stelt u dit in. endpoint naar 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 Geeft gelijkmatig verdeelde getallen terug op een logaritmische schaal. logspace deelt 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. ])
Tot slot, als je de geheugengrootte van een enkel element in een array wilt controleren, kun je het volgende gebruiken: itemsize.
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 opsplitsen van data is eenvoudig met NumPy. We gaan de matrix opsplitsen. e. in PythonJe gebruikt vierkante haken om 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 in NumPy de eerste array-index begint bij 0.
## First row print('First row:', e[0]) ## Second row print('Second row:', e[1])
Output:
First row: [1 2 3] Second row: [4 5 6]
In Python, zoals in veel andere talen,
- De waarde vรณรณr de komma staat voor het aantal rijen.
- De waarde na de komma staat voor de kolommen.
- Als u een kolom wilt selecteren, voeg dan toe
:vรณรณr de kolomindex. :Dit betekent dat je alle rijen uit de geselecteerde kolom wilt.
print('Second column:', e[:,1])
Second column: [2 5]
Om de eerste twee waarden van de tweede rij terug te geven, gebruikt u : om alle kolommen tot en met de tweede index te selecteren.
## Second Row, two values print(e[1, :2]) [4 5]
Statistische functies in Python
NumPy biedt een handige set statistische functies voor het vinden van het minimum, maximum, percentiel, standaarddeviatie, variantie en meer in een gegeven array. De meest gebruikte functies staan โโhieronder vermeld.
NumPy wordt geleverd met krachtige statistische hulpmiddelen, die in de tabel zijn samengevat.
| Functie | numpy |
|---|---|
| min | np.min() |
| Max | np.max() |
| Gemiddelde | np.mean() |
| Mediaan | np.mediaan() |
| Standaarddeviatie | np.std() |
Beschouw de volgende 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 statistische functies in NumPy
### 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 is een krachtige functie voor matrixberekeningen. Je kunt bijvoorbeeld het inwendig product berekenen met np.dot. numpy.dot retourneert het inwendig product van a en bHet programma kan zowel 1D- als 2D-arrays verwerken. Voor 2D-inputs voert het matrixvermenigvuldiging uit.
Syntax:
numpy.dot(x, y, out=None)
Kenmerken
Hier
x, y: invoerarrays. x en y moeten beide 1D of 2D zijn voor np.dot() om te werken als een scalair product of matrixvermenigvuldiging.
uit: optioneel uitvoerargument dat wordt gebruikt om het resultaat vast te leggen. Anders wordt een ndarray geretourneerd.
Retourneren
De functie numpy.dot() retourneert het inwendig product van twee arrays. x en yHet retourneert een scalaire waarde wanneer beide 1D zijn, anders retourneert het een array. out Als een array wordt gegeven, wordt deze geretourneerd.
Verhoogt
Het dotproduct in Python verhoogt een ValueError als de laatste dimensie van x komt niet overeen met de voorlaatste afmeting 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
NumPy matmul() De functie retourneert het matrixproduct van twee arrays. Zo werkt het.
1) Voor 2D-arrays retourneert het het normale matrixproduct.
2) Voor dimensies groter dan 2 wordt het product behandeld als een stapel matrices.
3) Een 1D-array wordt eerst omgezet naar een matrix, waarna het product wordt berekend.
Het infix @ operator, beschikbaar sinds Python 3.5 is een afkorting voor matmul en wordt veelvuldig gebruikt in moderne code.
Syntax:
numpy.matmul(x, y, out=None)
Hier
x, y: invoerarrays. Scalaire waarden zijn niet toegestaan.
uit: optionele parameter. De uitvoer wordt doorgaans opgeslagen in een ndarray.
Voorbeeld:
Op dezelfde manier kun je matrixvermenigvuldiging berekenen met np.matmul.
### Matmul: matrix 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 je de determinant van een matrix moet berekenen, gebruik dan... np.linalg.det()NumPy zorgt voor de afmetingen.
Voorbeeld:
## Determinant 2*2 matrix ### 5*8-7*6 np.linalg.det(i)
Output:
-2.000000000000005
NumPy Broadcasting uitgelegd
Broadcasting is de regel die NumPy in staat stelt rekenkundige bewerkingen uit te voeren op arrays van verschillende vormen zonder gegevens te kopiรซren. Wanneer je een scalair optelt bij een 1D-vector, of een 1D-vector bij een 2D-matrix, rekt NumPy de kleinere operand uit langs de ontbrekende assen, zodat de vormen op elkaar aansluiten. Dit voorkomt expliciete conversie. Python lussen en is een van de belangrijkste redenen waarom NumPy-code snel en beknopt aanvoelt.
Twee vormen zijn compatibel voor uitzending wanneer, van rechts naar links vergeleken, elk paar dimensies gelijk is of รฉรฉn van beide gelijk is aan 1. Bijvoorbeeld een matrix van de vorm (3, 4) uitzendingen tegen een rij vormen (4,) of een kolomvorm (3, 1)Diezelfde logica ligt ten grondslag aan normalisatie in machine learning, waar je subtracEen gemiddelde vector per kenmerk uit een reeks samples in รฉรฉn regel. Broadcasting is ook het conceptuele model dat wordt gebruikt door tensorbibliotheken zoals Py.Torch, TensorFlow en JAX, dus de regels die je hier leert, zijn direct toepasbaar op GPU-code.
Hoe NumPy AI en machine learning aandrijft
NumPy vormt de basis van vrijwel elk modern programma. Python AI-stack. PyTorch-tensors, TensorFlow eager tensors en JAX-arrays bieden dezelfde broadcasting-, slicing- en resha-functionaliteit.ping De API die je hebt geleerd over NumPy ndarrays. Veel tutorials gebruiken nog steeds voorbewerkte NumPy-arrays als invoer voor trainingsloops van modellen, en frameworks accepteren deze zonder enige conversie.
Drie concrete voorbeelden laten zien hoe NumPy aansluit op AI-ontwikkeling. Ten eerste vormen data-engineers ruwe data om tot NumPy-arrays voordat ze deze doorgeven aan scikit-learn-pipelines of Hugging Face-datasets. Ten tweede gebruiken onderzoekers NumPy als basis voor CPU-bewerkingen en schakelen ze vervolgens over op CuPy, dat een vrijwel identieke API biedt maar via CUDA op NVIDIA GPU's draait. Ten derde bouwt JAX voort op de NumPy API met automatische differentiatie en just-in-time compilatie, waardoor dezelfde code die op een laptop draait, ook op TPU's in de cloud kan worden uitgevoerd. De conclusie is dat de array-vaardigheden die je met NumPy ontwikkelt, toepasbaar zijn in alle belangrijke deep learning-toolkits. Dit maakt deze tutorial een nuttige stap op weg naar AI-ontwikkeling.
