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.

  • โœ… Kerngebruik: Snelle N-dimensionale arrays en gevectoriseerde wiskunde in Python.
  • โš™๏ธ Belangrijkste Functies: nullen, enen, herschikken, hstack, punt, linspace.
  • ๐Ÿ“š Foundations: Lineaire algebra, broadcasting, statistiek, slicing.
  • ๐Ÿš€ Huidige versie: NumPy 2.x (uitgebracht in juni 2024) is nu stabiel.
  • ๐Ÿค– AI-gebruik: De ruggengraat van PyTorch-, TensorFlow-, JAX- en CuPy-tensors.

Python NumPy-zelfstudie

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 door 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 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.

Voorbeeld om willekeurig te genereren Numbers met behulp van NumPy
Voorbeeld om willekeurig te genereren Numbers met behulp van NumPy

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.arange in 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) stop is de laatste waarde. Als False, stop is 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.

Veelgestelde vragen

NumPy biedt snelle N-dimensionale arrays, gevectoriseerde wiskunde, lineaire algebra, willekeurige steekproeven en Fourier-transformaties. Ingenieurs en datawetenschappers gebruiken het voor numerieke berekeningen, beeld- en signaalverwerking, statistiek en als de array-basis voor geavanceerdere bibliotheken zoals pandas, scikit-learn en SciPy.

Een NumPy-array slaat elementen van รฉรฉn vast gegevenstype op in een aaneengesloten blok geheugen, waardoor vectorberekeningen snel verlopen. Python Lijsten kunnen willekeurige objecten bevatten, ondersteunen gemengde gegevenstypen en maken gebruik van langzamere lussen per element. Daardoor zijn ze flexibel, maar veel minder efficiรซnt voor grote numerieke taken.

NumPy 2.0, uitgebracht in juni 2024, houdt de kern-API voor arrays stabiel, maar verwijdert lang verouderde aliassen zoals np.float en np.inten verscherpt de regels voor typeconversie. De meeste productiecode heeft slechts kleine aanpassingen nodig. Pin numpy<2 als een afhankelijkheid nog niet is bijgewerkt.

PyTorch en TensorFlow modelleren hun tensorobjecten op basis van NumPy ndarrays. Ze delen dezelfde vorm-, broadcasting- en slicing-semantiek en accepteren beide NumPy-arrays als invoer. Vaardigheden die met NumPy worden geleerd, zijn direct toepasbaar op het bouwen van neurale netwerken, trainingsloops en tensor-preprocessing-pipelines.

De standaardversie van NumPy draait op de CPU. Voor GPU-acceleratie kunt u CuPy gebruiken, dat de NumPy API nabootst op NVIDIA CUDA-apparaten, of JAX, dat autodiff en just-in-time compilatie toevoegt voor GPU's en TPU's. Beide bibliotheken stellen u in staat om de meeste bestaande NumPy-code met minimale aanpassingen te hergebruiken voor AI-workloads.

Anaconda levert NumPy standaard mee. Zo niet, voer dan het volgende commando uit: pip install numpy or conda install -c anaconda numpyOm een โ€‹โ€‹bestaande installatie te upgraden naar NumPy 2.x, voert u het volgende commando uit: pip install --upgrade numpyControleer de actieve versie met print(np.__version__) binnen Python.

Broadcasting stelt NumPy in staat om met arrays van verschillende vormen te werken zonder gegevens te kopiรซren. De kleinere array wordt virtueel uitgerekt om overeen te komen met de grotere array wanneer de afmetingen compatibel zijn. Dit maakt beknopte expressies mogelijk voor normalisatie, schaling en feature engineering in machine learning-pipelines.

Vat dit bericht samen met: