Python NumPy-Tutorial für Anfänger

⚡ Intelligente Zusammenfassung

NumPy ist die Grundlage Python NumPy ist eine Bibliothek für numerische Berechnungen und ermöglicht die Arbeit mit Arrays, Matrizen, linearer Algebra und Zufallsstichproben. Dieses NumPy-Tutorial führt Sie durch die Installation, die Erstellung von Arrays und die Resha-Methode.ping, Slicing, Statistik und Matrixmathematik mit runnable Python Beispiele.

  • Hauptanwendung: Schnelle N-dimensionale Arrays und vektorisierte Mathematik in Python.
  • ⚙️ Zentrale Funktionen: zeros, ones, reshape, hstack, dot, linspace.
  • 📚 Foundations: Lineare Algebra, Rundfunk, Statistik, Slicing.
  • 🚀 Aktuelle Version: NumPy 2.x (veröffentlicht im Juni 2024) ist jetzt stabil.
  • 🤖 KI-Nutzung: Rückgrat von PyTorch-, TensorFlow-, JAX- und CuPy-Tensoren.

Python NumPy-Anleitung

Was ist NumPy in Python?

NumPy ist ein Open Source Python Bibliothek für mathematische, naturwissenschaftliche, ingenieurwissenschaftliche und datenwissenschaftliche Programmierung. Sie ist eine sehr nützliche Bibliothek für mathematische und statistische Operationen. PythonEs funktioniert einwandfrei mit mehrdimensionalen Arrays und Matrixmultiplikation und lässt sich problemlos in C integrieren.C++ und Fortran.

Für jedes wissenschaftliche Projekt ist NumPy das Werkzeug der Wahl. Es wurde für N-dimensionale Arrays, lineare Algebra, Zufallszahlengenerierung, Fourier-Transformationen und vieles mehr entwickelt.

NumPy gibt Python Erstklassige Unterstützung für mehrdimensionale Arrays und Matrizen sowie eine Vielzahl mathematischer Operationen, die darauf angewendet werden. In diesem Leitfaden werden wir die wichtigsten Funktionen besprechen, die Sie kennen sollten, bevor wir mit dem Tutorial zu „…“ fortfahren.TensorFlow. "

Warum NumPy verwenden?

NumPy ist speichereffizient und kann daher große Mengen numerischer Daten leichter verarbeiten als reines NumPy. Python Es eignet sich auch sehr gut für die Matrixmultiplikation und das Umformen von Listen.pingUnd es ist schnell, weil die rechenintensive Arbeit an kompilierte C-Routinen delegiert wird. Tatsächlich nutzen Bibliotheken wie TensorFlow und PyTensorFlow diese Technologie.Torch und Scikit-learn verwenden NumPy-Arrays für Matrixberechnungen im Backend, was NumPy zum stillen Arbeitspferd unter den meisten modernen Data-Science- und KI-Workflows macht.

So installieren Sie NumPy

Informationen zur Installation der NumPy-Bibliothek finden Sie in unserem Tutorial. So installieren Sie TensorFlow. NumPy wird standardmäßig mit Anaconda installiert.

Für den seltenen Fall, dass NumPy nicht installiert ist, verwenden Sie eine der folgenden Optionen.

Sie können NumPy mit Anaconda installieren:

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

Pip-Benutzer können mit einem einzigen Befehl installieren oder aktualisieren:

pip install --upgrade numpy

Importieren Sie NumPy und überprüfen Sie die Version

Der Befehl zum Importieren von Numpy lautet:

import numpy as np

Die obige Zeile benennt den NumPy-Namensraum um in npMit dieser Abkürzung können Sie NumPy-Funktionen, -Methoden und -Attribute mit einem Präfix versehen. np. statt typing numpy., und es ist die gängige Konvention, die man im gesamten NumPy-Ökosystem antreffen wird.

Um Ihre installierte Version von NumPy zu überprüfen, verwenden Sie den folgenden Befehl:

print(np.__version__)

Ausgang:

2.1.3

NumPy 2.0 wurde im Juni 2024 veröffentlicht und ist die aktuell stabile Hauptversion. Falls Ihr Projekt noch die 1.x-API verwendet, pinnen Sie es an diese Version an. numpy<2 in Ihrer Anforderungsdatei, da einige ältere Aliase wie z. B. np.float wurden in Version 2.0 entfernt.

Non-Profit Python NumPy-Array?

NumPy-Arrays sehen ungefähr so ​​aus: Python Auf den ersten Blick sehen sie wie Listen aus, verhalten sich aber ganz anders. Für Leser, die mit diesem Thema noch nicht vertraut sind, erklären wir zunächst, was ein ndarray ist und warum es wichtig ist.

Wie der Name schon sagt, ist ein NumPy-Array die zentrale Datenstruktur der NumPy-Bibliothek. Der Name selbst ist eine Kurzform von „Numeric“. Python“ oder „Numerisch Python“, und das ndarray ist ein homogener Speicherblock fester Größe mit bekannter Form und bekanntem Datentyp.

Erstellen eines NumPy-Arrays

Der einfachste Weg, ein Array in NumPy zu erstellen, besteht darin, mit einem Array zu beginnen. Python Liste.

myPythonList = [1,9,8,3]

Konvertieren Sie die Python Liste in ein NumPy-Array umwandeln np.array.

numpy_array_from_list = np.array(myPythonList)

Den Inhalt des Arrays anzeigen.

numpy_array_from_list

Ausgang:

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

In der Praxis besteht keine Notwendigkeit, eine Python Zuerst die Liste auflisten. Die beiden Schritte können kombiniert werden.

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

Anmerkungen: Die NumPy-Dokumentation erwähnt auch np.ndarray, Aber np.array ist die empfohlene Werkseinstellung für den täglichen Gebrauch.

Auf die gleiche Weise kann man auch ein NumPy-Array aus einem Tupel erstellen.

Mathematisch Operationen auf einem Array

Sie können mathematische Operationen wie Addition, Subtraktion usw. durchführen.tracDivision, Multiplikation und Division auf einem Array. Die Syntax lautet: Array-Name, gefolgt vom Operator (+, -, *, /), gefolgt vom Operanden. Diese Operationen sind vektorisiert, was bedeutet, dass NumPy sie auf jedes Element anwendet, ohne einen expliziten Operanden anzugeben. Python Schleife.

Ejemplo:

numpy_array_from_list + 10

Ausgang:

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

Diese Operation addiert 10 zu jedem Element des NumPy-Arrays.

Form des Arrays

Sie können die Form eines Arrays mit dem shape Das Attribut wird durch Anhängen an den Arraynamen aufgerufen. Auf die gleiche Weise kann der Typ überprüft werden mit dtype.

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

(3,)
int64

Eine Ganzzahl ist ein Wert ohne Dezimaltrennzeichen. Wenn Sie ein Array mit Dezimalzahlen erstellen, ändert sich der Datentyp in float.

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

float64

2-dimensionales Array

Sie können eine Dimension hinzufügen, indem Sie innerhalb der Klammern ein Komma setzen.

Beachten Sie, dass die inneren Tupel innerhalb der äußeren Klammern stehen müssen. [].

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

3-dimensionales Array

Höhere Dimensionen können auf die gleiche Weise konstruiert werden.

### 3 dimension
d = np.array([
    [[1, 2,3],
        [4, 5, 6]],
    [[7, 8,9],
        [10, 11, 12]]
])
print(d.shape)
(2, 2, 3)
Ziel Code
Array erstellen Array([1,2,3])
Drucken Sie die Form aus array([.]).shape

Was ist numpy.zeros()?

numpy.zeros() or np.zeros ist eine Python Funktion zur Erstellung einer mit Nullen gefüllten Matrix. numpy.zeros() ist nützlich, wenn Sie während der ersten Iteration in TensorFlow Gewichte initialisieren oder Platzhalterpuffer für andere statistische Aufgaben einrichten müssen.

Syntax der Funktion numpy.zeros()

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

Python numpy.zeros() Parameter

Dabei steht:

  • Shape: Form des NumPy-Null-Arrays.
  • Dtyp: Datentyp der Elemente. Er ist optional, der Standardwert ist float64.
  • OrderStandardwert ist C, das ist das zeilenweise Layout, das von numpy.zeros() in Python.

Python numpy.zeros() Beispiel

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

Ausgang:

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

Beispiel für Numpy Zero mit Datentyp

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

Ausgang:

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

Was ist numpy.ones()?

np.ones()-Funktion erzeugt eine Matrix, die mit Einsen gefüllt ist. numpy.ones() in Python ist nützlich, wenn Sie in TensorFlow während der ersten Iteration Gewichte initialisieren und für andere statistische Aufgaben.

Python numpy.ones() Syntax

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

Python numpy.ones() Parameter

Dabei steht:

  • Shape: Form der np.ones Python Feld.
  • Dtyp: Datentyp der Elemente. Er ist optional, der Standardwert ist float64.
  • OrderStandardwert ist CDas ist das zeilenorientierte Layout.

Python numpy.ones() 2D-Array mit Datentypbeispiel

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

Ausgang:

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

numpy.reshape() Funktion in Python

Python NumPy-Umformung Ändert die Form eines Arrays, ohne dessen Daten zu verändern. Möglicherweise müssen Sie Daten vom breiten ins lange Format umformen oder von einem 1D-Vektor in eine 2D-Matrix konvertieren, bevor Sie sie einem Modell zuführen. np.reshape Die Funktion erledigt dies mit einem einzigen Aufruf.

Syntax von np.reshape()

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

Dabei steht:

a: Array, das Sie umformen möchten.

neue Form: die neue gewünschte Form.

OrderStandardwert ist C, das zeilenorientierte Layout.

Beispiel für NumPy Reshape

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

Ausgang:

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

numpy.flatten() in Python

Python NumPy Abflachen Gibt eine auf eine Dimension reduzierte Kopie des Arrays zurück. Bei der Arbeit mit neuronalen Netzen wie Convolutional Neural Networks (CNNs) ist es oft notwendig, einen Bildtensor zu vereinfachen, bevor er an eine Dense-Schicht übergeben wird. np.flatten() Die Funktion erledigt dies in einem einzigen Aufruf.

Syntax von np.flatten()

numpy.flatten(order='C')

Dabei steht:
OrderStandardwert ist C, das zeilenorientierte Layout.

Beispiel für NumPy Flatten

e.flatten()

Ausgang:

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

Was ist numpy.hstack() in Python?

numpy.hstack ist eine Python Funktion zum horizontalen Stapeln von Sequenzen von Eingabe-Arrays in einem einzigen Array. hstack()Sie fügen Daten entlang der Spaltenachse an. Dies ist eine sehr praktische Hilfsfunktion in NumPy, wenn Sie Merkmalsvektoren nebeneinander zusammenführen müssen.

Lasst uns studieren hstack in Python mit einem Beispiel.

Ejemplo:

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

Ausgang:

Horizontal Append: [1 2 3 4 5 6]

Was ist numpy.vstack() in Python?

numpy.vstack ist eine Python Funktion zum vertikalen Stapeln von Sequenzen von Eingabe-Arrays in einem einzigen Array. vstack()Sie fügen Daten entlang der Zeilenachse an, was praktisch ist, wenn Sie mehrere Proben zusammenfassen möchten.

Lassen Sie uns das anhand eines Beispiels untersuchen.

Ejemplo:

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

Ausgang:

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

Nach dem Studium von NumPy vstack und hstackBetrachten wir ein Beispiel, das Zufallszahlen in NumPy generiert.

Zufällig generieren Numbers mit NumPy

Um Zufallszahlen aus einer Gaußverteilung zu generieren, verwenden Sie:

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

Dabei steht:

  • Ort: der Mittelwert. Das Zentrum der Verteilung.
  • Skalieren: die Standardabweichung.
  • Größe: Anzahl der zurückgegebenen Proben.

Ejemplo:

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

Wenn man die Verteilung grafisch darstellt, ähnelt sie dem folgenden Diagramm.

Beispiel für die Zufallsgenerierung Numbers mit NumPy
Beispiel für die Zufallsgenerierung Numbers mit NumPy

Beachten Sie, dass neuerer Code zunehmend die moderne Generator-API verwendet. np.random.default_rng(), welches der empfohlene Ersatz für das ältere System ist. np.random.normal Aufrufe in NumPy 2.x.

NumPy Aarray-Funktion

Das asarray() Die Funktion wandelt eine Eingabe in ein Array um. Die Eingabe kann eine Liste, ein Tupel, ein ndarray oder eine ähnliche Sequenz sein.

Syntax:

numpy.asarray(data, dtype=None, order=None)

Dabei steht:

frustrierten: Daten, die Sie in ein Array umwandeln möchten.

dtypeOptional. Falls nicht angegeben, wird der Datentyp aus den Eingabedaten abgeleitet.

OrderStandardwert ist C, das zeilenweise Layout. Die andere Option ist F (Fortran-Style-Spaltenhauptrolle).

Ejemplo:

Betrachten Sie die folgende 2D-Matrix mit vier Zeilen und vier Spalten, die mit 1 gefüllt ist.

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

Wenn Sie versuchen, einen Wert in der Matrix zu ändern durch np.arrayDas Original wird nicht verändert. Der Grund dafür ist, dass np.array erstellt eine Kopie der Matrix.

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

Die Matrix bleibt unverändert. asarray Wenn Sie das ursprüngliche Array direkt verändern möchten. Schauen wir uns an, was passiert, wenn Sie die dritte Zeile auf den Wert 2 setzen.

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

Code Erläuterung:

np.asarray(A) wandelt die Matrix um A zu einer Array-Ansicht.

[2] wählt die dritte Zeile aus.

Ausgang:

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

Was ist numpy.arange()?

numpy.arange() ist eine integrierte NumPy-Funktion, die ein ndarray mit gleichmäßig verteilten Werten innerhalb eines definierten Intervalls zurückgibt. Um beispielsweise Werte von 1 bis 10 zu erzeugen, können Sie Folgendes aufrufen: np.arange() in Python.

Syntax:

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

Python NumPy arange-Parameter:

  • Start: Beginn des Intervalls für np.arange in Python.
  • Stoppen: Ende des Intervalls.
  • SchrittAbstand zwischen den Werten. Standardschrittweite: 1.
  • Dtyp: Typ des Ausgabearrays für NumPy arange.

Ejemplo:

import numpy as np
np.arange(1, 11)

Ausgang:

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

Ejemplo:

Um den Schritt in diesem NumPy zu ändern arange Fügt man beispielsweise eine dritte Zahl in die Klammern ein, ändert sich die Schrittweite.

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

Ausgang:

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

NumPy Linspace-Funktion

linspace Gibt gleichmäßig verteilte Abtastwerte zwischen zwei Endpunkten zurück.

Syntax:

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

Dabei steht:

  • Start: Startwert der Sequenz.
  • Stoppen: Endwert der Sequenz.
  • Num: Anzahl der zu generierenden Stichproben. Standardwert ist 50.
  • Endpunkt: ob True (Standard), stop ist der letzte Wert. Wenn False, stop ist nicht enthalten.

Ejemplo:

Man kann es beispielsweise verwenden, um 10 gleichmäßig verteilte Werte von 1 bis 5 zu erzeugen.

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

Ausgang:

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

Wenn Sie die letzte Ziffer nicht in das Intervall einbeziehen möchten, stellen Sie Folgendes ein: endpoint zu False.

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

Ausgang:

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

LogSpace NumPy-Funktion in Python

logspace Gibt gleichmäßig verteilte Zahlen auf einer logarithmischen Skala zurück. logspace teilt die gleichen Parameter wie np.linspace.

Syntax:

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

Ejemplo:

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

Ausgang:

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

Abschließend lässt sich sagen, dass man, um die Speichergröße eines einzelnen Elements in einem Array zu überprüfen, Folgendes verwenden kann: itemsize.

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

Ausgang:

16

Jedes Element benötigt 16 Bytes.

Indizieren und Slicen in Python

Das Aufteilen von Daten ist mit NumPy unkompliziert. Wir werden die Matrix aufteilen. e. in PythonMit eckigen Klammern gibt man Zeilen oder Spalten zurück.
Ejemplo:

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

Denken Sie daran, dass in NumPy der erste Array-Index bei 0 beginnt.

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

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

Ausgang:

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

In Python, wie in vielen anderen Sprachen,

  • Der Wert vor dem Komma steht für die Zeilen.
  • Der Wert nach dem Komma steht für die Spalten.
  • Wenn Sie eine Spalte auswählen möchten, fügen Sie Folgendes hinzu: : vor dem Spaltenindex.
  • : Das bedeutet, dass Sie alle Zeilen aus der ausgewählten Spalte abrufen möchten.
print('Second column:', e[:,1])
Second column: [2 5]

Um die ersten beiden Werte der zweiten Zeile zurückzugeben, verwenden Sie : Alle Spalten bis zum zweiten Index auswählen.

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

Statistische Funktionen in Python

NumPy bietet eine nützliche Sammlung statistischer Funktionen zur Bestimmung von Minimum, Maximum, Perzentil, Standardabweichung, Varianz und mehr eines gegebenen Arrays. Die gebräuchlichsten Funktionen sind unten aufgeführt.

NumPy wird mit robusten statistischen Hilfsfunktionen ausgeliefert, die in der Tabelle zusammengefasst sind.

Funktion Numpy
Min. np.min()
Max np.max()
Bedeuten np.mean()
Median np.median()
Standardabweichung np.std()

Betrachten Sie das folgende Array:

Ejemplo:

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

Ausgang:

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

Beispiel für statistische NumPy-Funktionen

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

Ausgang:

4.467042435266913
5.612113171990201
4.934841002270593
4.846995625786663
0.3875019367395316

Was ist das Numpy-Punktprodukt?

numpy.dot ist eine leistungsstarke Funktion für Matrixberechnungen. Beispielsweise kann man mit ihr das Skalarprodukt berechnen. np.dot. numpy.dot gibt das Skalarprodukt von zurück a und bund verarbeitet sowohl 1D- als auch 2D-Arrays. Bei 2D-Eingaben führt es eine Matrixmultiplikation durch.

Syntax:

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

Kenngrößen

Dabei steht:

x, y: Eingabe-Arrays. x und y sollten beide 1D oder 2D sein für np.dot() um als Skalarprodukt oder Matrixmultiplikation zu funktionieren.

: Optionales Ausgabeargument, das zum Auffangen des Ergebnisses verwendet wird. Andernfalls wird ein ndarray zurückgegeben.

Rücksendungen

Die Funktion numpy.dot() Gibt das Skalarprodukt zweier Arrays zurück. x und yEs gibt einen Skalar zurück, wenn beide eindimensional sind, andernfalls ein Array. out Wenn ein Array angegeben wird, wird dieses Array zurückgegeben.

Hebt

Das Skalarprodukt in Python wirft ein ValueError wenn die letzte Dimension von x stimmt nicht mit der vorletzten Dimension überein. y.

Ejemplo:

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

Ausgang:

14

Matrixmultiplikation in Python

Der NumPy matmul() Die Funktion gibt das Matrixprodukt zweier Arrays zurück. So funktioniert sie.

1) Bei 2D-Arrays gibt es das normale Matrixprodukt zurück.

2) Bei Dimensionen größer als 2 wird das Produkt als Stapel von Matrizen behandelt.

3) Zuerst wird ein 1D-Array in eine Matrix umgewandelt, dann wird das Produkt berechnet.

Das Infix @ Betreiber, verfügbar seit Python 3.5 ist die Kurzform für matmul und wird in modernem Code häufig verwendet.

Syntax:

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

Dabei steht:

x, y: Eingabe-Arrays. Skalare sind nicht zulässig.

: optionaler Parameter. Normalerweise wird die Ausgabe in einem ndarray gespeichert.

Ejemplo:

Auf die gleiche Weise kann man die Matrixmultiplikation berechnen mit 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)

Ausgang:

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

Determinante

Wenn Sie die Determinante einer Matrix berechnen müssen, verwenden Sie np.linalg.det()NumPy kümmert sich um die Dimensionen für Sie.

Ejemplo:

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

Ausgang:

-2.000000000000005

NumPy Broadcasting erklärt

Broadcasting ist die Regel, die es NumPy ermöglicht, arithmetische Operationen auf Arrays unterschiedlicher Form durchzuführen, ohne Daten zu kopieren. Wenn man einen Skalar zu einem 1D-Vektor oder einen 1D-Vektor zu einer 2D-Matrix addiert, streckt NumPy den kleineren Operanden entlang der fehlenden Achsen, sodass die Formen übereinstimmen. Dadurch werden explizite Datenkopien vermieden. Python Schleifen sind einer der Hauptgründe, warum sich NumPy-Code schnell und prägnant anfühlt.

Zwei Matrixformen sind für die Übertragung kompatibel, wenn beim Vergleich von rechts nach links jedes Paar von Dimensionen entweder gleich ist oder eine der Dimensionen gleich 1 ist. Zum Beispiel eine Matrix der Form (3, 4) Sendungen gegen eine Reihe von Formen (4,) oder eine Säule der Form (3, 1)Dieselbe Logik liegt der Normalisierung im maschinellen Lernen zugrunde, wo man …tracEin Vektor des Mittelwerts eines Merkmals aus einer Reihe von Stichproben wird in einer einzigen Zeile dargestellt. Broadcasting ist auch das konzeptionelle Modell, das von Tensorbibliotheken wie Py verwendet wird.Torch, TensorFlow und JAX, daher lassen sich die hier gelernten Regeln direkt auf GPU-Code übertragen.

Wie NumPy KI und maschinelles Lernen antreibt

NumPy ist die Basis fast jedes modernen Systems. Python KI-Stack.pyTorch-Tensoren, TensorFlow-Eager-Tensoren und JAX-Arrays bieten dieselben Broadcasting-, Slicing- und Resha-Funktionen.ping Die API, die Sie über NumPy-ndarrays gelernt haben. Viele Tutorials verwenden immer noch vorverarbeitete NumPy-Arrays für Modelltrainingsschleifen, und Frameworks akzeptieren diese ohne Konvertierung.

Drei konkrete Anwendungsbeispiele veranschaulichen die Bedeutung von NumPy für die KI-Entwicklung. Erstens: Dateningenieure strukturieren Rohdaten in NumPy-Arrays, bevor sie diese an scikit-learn-Pipelines oder Hugging Face-Datensätze übergeben. Zweitens: Forscher nutzen NumPy als Basis für die CPU-Architektur und wechseln dann zu CuPy, das eine nahezu identische API bietet, aber über CUDA auf NVIDIA-GPUs läuft. Drittens: JAX erweitert die NumPy-API um automatische Differenzierung und Just-in-Time-Kompilierung, sodass derselbe Code, der auf einem Laptop läuft, auch auf TPUs in der Cloud ausgeführt werden kann. Fazit: Die mit NumPy erworbenen Kenntnisse im Umgang mit Arrays sind in allen wichtigen Deep-Learning-Toolkits anwendbar. Dieses Tutorial ist daher ein wertvoller Schritt auf dem Weg zur KI-Entwicklung.

Häufig gestellte Fragen

NumPy bietet schnelle N-dimensionale Arrays, vektorisierte Mathematik, lineare Algebra, Zufallsstichproben und Fourier-Transformationen. Ingenieure und Datenwissenschaftler nutzen es für numerische Berechnungen, Bild- und Signalverarbeitung, Statistik und als Grundlage für Arrays in übergeordneten Bibliotheken wie pandas, scikit-learn und SciPy.

Ein NumPy-Array speichert Elemente eines festen Datentyps in einem zusammenhängenden Speicherblock, was vektorisierte Mathematik beschleunigt. Python Listen können beliebige Objekte speichern, unterstützen gemischte Datentypen und basieren auf langsameren Schleifen pro Element. Daher sind sie zwar flexibel, aber für große numerische Arbeitslasten weit weniger effizient.

NumPy 2.0, veröffentlicht im Juni 2024, hält die Kern-Array-API stabil, entfernt aber seit langem veraltete Aliase wie z. B. np.float und np.intund verschärft die Regeln für die Typumwandlung. Der Großteil des Produktionscodes benötigt nur geringfügige Anpassungen. Anheften numpy<2 wenn eine Abhängigkeit noch nicht aktualisiert wurde.

PyTorch und TensorFlow modellieren ihre Tensorobjekte auf Basis von NumPy-ndarrays. Sie verwenden dieselbe Semantik für Form, Broadcasting und Slicing und akzeptieren beide NumPy-Arrays als Eingabe. Die mit NumPy erworbenen Kenntnisse lassen sich direkt auf die Entwicklung neuronaler Netze, Trainingsschleifen und Tensor-Vorverarbeitungspipelines übertragen.

Standardmäßig läuft NumPy auf der CPU. Für GPU-Beschleunigung empfiehlt sich CuPy, das die NumPy-API auf NVIDIA CUDA-Geräten nachbildet, oder JAX, das automatische Differenzberechnung und Just-in-Time-Kompilierung für GPUs und TPUs hinzufügt. Beide ermöglichen die Wiederverwendung des Großteils des vorhandenen NumPy-Codes mit minimalen Anpassungen für KI-Workloads.

Anaconda bringt NumPy standardmäßig mit. Andernfalls führen Sie Folgendes aus: pip install numpy or conda install -c anaconda numpyUm eine bestehende Installation auf NumPy 2.x zu aktualisieren, führen Sie folgenden Befehl aus: pip install --upgrade numpyÜberprüfen Sie die aktive Version mit print(np.__version__) innerhalb Python.

Broadcasting ermöglicht es NumPy, Arrays unterschiedlicher Größe zu verarbeiten, ohne Daten zu kopieren. Das kleinere Array wird virtuell an das größere angepasst, sofern die Dimensionen kompatibel sind. Dies ermöglicht prägnante Ausdrücke für Normalisierung, Skalierung und Feature Engineering in Machine-Learning-Pipelines.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: