Python NumPy-Tutorial für Anfänger: Lernen mit Beispielen
Was ist NumPy in Python?
NumPy ist eine Open Source-Bibliothek verfügbar in Python, die bei der Programmierung in Mathematik, Naturwissenschaften, Ingenieurwissenschaften und Datenwissenschaften hilft. Es ist eine sehr nützliche Bibliothek, um mathematische und statistische Operationen durchzuführen in Python. Es funktioniert perfekt für mehrdimensionale Arrays und Matrixmultiplikation. Es lässt sich leicht in C/ integrieren.C++ und Fortran.
Für jedes wissenschaftliche Projekt ist NumPy das richtige Werkzeug. Es wurde für die Arbeit mit N-dimensionalen Arrays, linearer Algebra, Zufallszahlen, Fourier-Transformation usw. entwickelt.
NumPy ist eine Programmiersprache, die sich mit mehrdimensionalen Arrays und Matrizen beschäftigt. Neben Arrays und Matrizen unterstützt NumPy eine große Anzahl mathematischer Operationen. In diesem Teil werden wir die wesentlichen Funktionen durchgehen, die Sie für das Tutorial zu 'TensorFlow. "
Warum NumPy verwenden?
NumPy steht für Speichereffizienz, was bedeutet, dass es die große Datenmenge besser verarbeiten kann als jede andere Bibliothek. Außerdem ist NumPy sehr praktisch, insbesondere für die Matrixmultiplikation und -umformung. Darüber hinaus ist NumPy schnell. Tatsächlich lernen TensorFlow und Scikit, das NumPy-Array zu verwenden, um die Matrixmultiplikation im Backend zu berechnen.
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.
Im Remote-Fall ist NumPy nicht installiert.
Sie können NumPy mit Anaconda installieren:
conda install -c anaconda numpy
- In Jupyter Notizbuch:
import sys !conda install --yes --prefix {sys.prefix} numpy
Importieren Sie NumPy und überprüfen Sie die Version
Der Befehl zum Importieren von Numpy lautet:
import numpy as np
Der obige Code benennt den Numpy-Namespace in np um. Dies ermöglicht es uns, Numpy-Funktionen, -Methoden und -Attributen „np“ voranzustellen, anstatt „numpy“ einzugeben. Es ist die Standardverknüpfung, die Sie in der Numpy-Literatur finden
Um Ihre installierte Version von NumPy zu überprüfen, verwenden Sie den folgenden Befehl:
print (np.__version__)
Ausgang:
1.18.0
Was ist Python NumPy-Array?
NumPy-Arrays sind ein bisschen wie Python Listen, aber gleichzeitig doch sehr unterschiedlich. Für diejenigen unter Ihnen, die neu in diesem Thema sind, klären wir, was es genau ist und wofür es gut ist.
Wie der Name schon verrät, ist ein NumPy-Array eine zentrale Datenstruktur der NumPy-Bibliothek. Der Name der Bibliothek ist eigentlich die Abkürzung für „Numeric Python“ oder „Numerisch Python".
Erstellen eines NumPy-Arrays
Der einfachste Weg, ein Array in Numpy zu erstellen, ist die Verwendung von Python Liste
myPythonList = [1,9,8,3]
So konvertieren Sie eine Python-Liste mithilfe des Objekts np.array in ein Numpy-Array.
numpy_array_from_list = np.array(myPythonList)
Um den Inhalt der Liste anzuzeigen
numpy_array_from_list
Ausgang:
array([1, 9, 8, 3])
In der Praxis besteht keine Notwendigkeit, eine Python Liste. Die Operation kann kombiniert werden.
a = np.array([1,9,8,3])
HINWEIS: In der Numpy-Dokumentation wird die Verwendung von np.ndarray zum Erstellen eines Arrays angegeben. Dies ist jedoch die empfohlene Methode.
Sie können auch ein Numpy-Array aus einem Tupel erstellen.
Mathematisch Operationen auf einem Array
Sie können mathematische Operationen wie Addition, Subtraktion, Division und Multiplikation auf einem Array durchführen. Die Syntax ist der Array-Name, gefolgt von der Operation (+.-,*,/), gefolgt vom Operanden
Ejemplo:
numpy_array_from_list + 10
Ausgang:
array([11, 19, 18, 13])
Dieser Vorgang addiert 10 zu jedem Element des Numpy-Arrays.
Form des Arrays
Sie können die Form des Arrays anhand der Objektform überprüfen, der der Name des Arrays vorangestellt ist. Auf die gleiche Weise können Sie den Typ mit dtypes überprüfen.
import numpy as np a = np.array([1,2,3]) print(a.shape) print(a.dtype) (3,) int64
Eine Ganzzahl ist ein Wert ohne Dezimalzahl. Wenn Sie ein Array mit Dezimalzahl erstellen, ändert sich der Typ 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 mit einem „“,Koma“ hinzufügen
Beachten Sie, dass es innerhalb der Klammer [] stehen muss.
### 2 dimension c = np.array([(1,2,3), (4,5,6)]) print(c.shape) (2, 3)
3-dimensionales Array
Höhere Dimensionen können wie folgt 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() oder np.zeros Python Funktion wird verwendet, um eine Matrix voller Nullen zu erstellen. numpy.zeros() in Python kann verwendet werden, wenn Sie die Gewichte während der ersten Iteration in TensorFlow und anderen statistischen Aufgaben initialisieren.
Syntax der Funktion numpy.zeros()
numpy.zeros(shape, dtype=float, order='C')
Python numpy.zeros() Parameter
Hier
- Form: ist die Form des Numpy-Null-Arrays
- Dtyp: ist der Datentyp in Numpy-Nullen. Es ist optional. Der Standardwert ist float64
- Order: Standard ist C, ein wesentlicher Zeilenstil für 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 wird verwendet, um eine Matrix voller Einsen zu erstellen. numpy.ones() in Python kann verwendet werden, wenn Sie die Gewichte während der ersten Iteration in TensorFlow und anderen statistischen Aufgaben initialisieren.
Python numpy.ones() Syntax
numpy.ones(shape, dtype=float, order='C')
Python numpy.ones() Parameter
Hier
- Form: ist die Form der np.ones Python Feld
- Dtyp: ist der Datentyp in Numpy. Es ist optional. Der Standardwert ist float64
- Order: Der Standardwert ist C, ein wesentlicher Zeilenstil.
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 Die Funktion wird verwendet, um ein Array zu formen, ohne seine Daten zu ändern. In manchen Fällen müssen Sie die Daten möglicherweise von breit auf lang umformen. Hierzu können Sie die Funktion np.reshape verwenden.
Syntax von np.reshape()
numpy.reshape(a, newShape, order='C')
Hier
a: Array, das Sie umformen möchten
neue Form: Die neuen Wünsche gestalten
Order: Der Standardwert ist C, ein wesentlicher Zeilenstil.
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 Die Funktion wird verwendet, um eine eindimensionale Kopie des Arrays zurückzugeben. Wenn Sie mit einem neuronalen Netzwerk wie Convnet arbeiten, müssen Sie das Array reduzieren. Hierzu können Sie die Funktionen np.flatten() nutzen.
Syntax von np.flatten()
numpy.flatten(order='C')
Hier
Order: Der Standardwert ist C, ein wesentlicher Zeilenstil.
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 Funktion in Python das wird verwendet, um Sequenzen von Eingabearrays horizontal zu stapeln, um ein einzelnes Array zu erstellen. Mit der Funktion hstack() können Sie Daten horizontal anhängen. Dies ist eine sehr praktische Funktion in NumPy.
Lasst uns hstack studieren in Python mit einem Beispiel:
Ejemplo:
## 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)))
Ausgang:
Horizontal Append: [1 2 3 4 5 6]
Was ist numpy.vstack() in Python?
Numpy.vstack ist eine Funktion in Python Dies wird verwendet, um Sequenzen von Eingabearrays vertikal zu stapeln, um ein einzelnes Array zu erstellen. Mit der Funktion vstack() können Sie Daten vertikal anhängen.
Betrachten wir es anhand eines Beispiels:
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]]
Nachdem wir NumPy vstack und hstack studiert haben, lernen wir ein Beispiel zum Generieren von Zufallszahlen in NumPy.
Zufällig generieren Numbers mit NumPy
Um Zufallszahlen für die Gauß-Verteilung zu generieren, verwenden Sie:
numpy.random.normal(loc, scale, size)
Hier
- Ort: der Mittelwert. Das Vertriebszentrum
- Skalieren: Standardabweichung.
- Größe: Anzahl der Retouren
Ejemplo:
## 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]
Wenn die Verteilung grafisch dargestellt wird, ähnelt sie der folgenden Darstellung
NumPy Aarray-Funktion
Die Funktion asarray() wird verwendet, wenn Sie eine Eingabe in ein Array konvertieren möchten. Die Eingabe kann eine Liste, ein Tupel, ein Ndarray usw. sein.
Syntax:
numpy.asarray(data, dtype=None, order=None)[source]
Hier
die Datenerfassung: Daten, die Sie in ein Array konvertieren möchten
dtype: Dies ist ein optionales Argument. Wenn nicht angegeben, wird der Datentyp aus den Eingabedaten abgeleitet
Order: Der Standardwert ist C, ein wesentlicher Zeilenstil. Andere Option ist F (Fortan-Stil)
Ejemplo:
Betrachten Sie die folgende 2-D-Matrix mit vier Zeilen und vier Spalten, gefüllt mit 1
import numpy as np A = np.matrix(np.ones((4,4)))
Wenn Sie den Wert der Matrix ändern möchten, ist dies nicht möglich. Der Grund dafür ist, dass es nicht möglich ist, eine Kopie zu ändern.
np.array(A)[2]=2 print(A) [[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]]
Matrix ist unveränderlich. Sie können asarray verwenden, wenn Sie Änderungen am ursprünglichen Array hinzufügen möchten. Sehen wir uns an, ob sich etwas ändert, wenn Sie den Wert der dritten Zeile mit dem Wert 2 ändern möchten.
np.asarray(A)[2]=2 print(A)
Code-Erklärung:
np.asarray(A): Konvertiert die Matrix A in ein Array
[2]: Wählen Sie 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 eingebaute Numpy-Funktion, die ein Ndarray-Objekt zurückgibt, das gleichmäßig verteilte Werte innerhalb eines definierten Intervalls enthält. Wenn Sie beispielsweise Werte von 1 bis 10 erstellen möchten, können Sie np.arange() in Python Funktion.
Syntax:
numpy.arange(start, stop, step, dtype)
Python NumPy arange-Parameter:
- Beginne: Beginn des Intervalls für np.arange in Python Funktion.
- Stoppen: Ende des Intervalls.
- Schritt: Abstand zwischen Werten. Der Standardschritt ist 1.
- Dtyp: Ist eine Art Array-Ausgabe für NumPy arange in Python.
Ejemplo:
import numpy np np.arange(1, 11)
Ausgang:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Ejemplo:
Wenn Sie den Schritt in dieser NumPy arange-Funktion ändern möchten in Python Sie können beispielsweise eine dritte Zahl in die Klammern einfügen. Dadurch ändert sich der Schritt.
import numpy np np.arange(1, 14, 4)
Ausgang:
array([ 1, 5, 9, 13])
NumPy Linspace-Funktion
Linspace liefert gleichmäßig verteilte Samples.
Syntax:
numpy.linspace(start, stop, num, endpoint)
Hier
- Beginne: Startwert der Sequenz
- Stoppen: Endwert der Sequenz
- Num: Anzahl der zu generierenden Proben. Der Standardwert ist 50
- Endpunkt: Wenn True (Standard), ist stop der letzte Wert. Bei „Falsch“ wird der Stoppwert nicht berücksichtigt.
Ejemplo:
Beispielsweise können damit 10 Werte von 1 bis 5 in gleichmäßigen Abständen erstellt werden.
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, können Sie endpoint auf false setzen
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 Zahlen mit geradem Abstand auf einer logarithmischen Skala zurück. Logspace hat dieselben 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. ])
Wenn Sie schließlich die Speichergröße eines Elements in einem Array überprüfen möchten, können Sie itemsize verwenden
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 Slicen von Daten ist mit Numpy trivial. Wir slicen die Matrix „e“. Beachten Sie, dass in Pythonmüssen Sie die Klammern verwenden, um die Zeilen oder Spalten zurückzugeben
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 bei Numpy das erste Array/die erste Spalte bei 0 beginnt.
## First column print('First row:', e[0]) ## Second col print('Second row:', e[1])
Ausgang:
First row: [1 2 3] Second row: [4 5 6]
In Python, wie viele andere Sprachen,
- Die Werte vor dem Komma stehen für die Zeilen
- Der Wert auf den Rechten steht für die Spalten.
- Wenn Sie eine Spalte auswählen möchten, müssen Sie : vor dem Spaltenindex hinzufügen.
- : bedeutet, dass Sie alle Zeilen aus der ausgewählten Spalte haben möchten.
print('Second column:', e[:,1])
Second column: [2 5]
Um die ersten beiden Werte der zweiten Zeile zurückzugeben. Sie verwenden :, um alle Spalten bis auf die Sekunde auszuwählen
## Second Row, two values print(e[1, :2]) [4 5]
Statistische Funktionen in Python
NumPy verfügt über eine ganze Reihe nützlicher statistischer Funktionen zum Ermitteln von Minimum, Maximum, Perzentil-Standardabweichung und -Varianz usw. aus den angegebenen Elementen im Array. Die Funktionen werden wie folgt erklärt:
Numpy ist mit der unten aufgeführten robusten Statistikfunktion ausgestattet
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 einer statistischen NumPy-Funktion
### 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-Produkt ist eine leistungsstarke Bibliothek für Matrizenberechnungen. Beispielsweise können Sie das Skalarprodukt mit np.dot berechnen. Das Numpy.dot-Produkt ist das Skalarprodukt von a und b. numpy.dot() in Python verarbeitet die 2D-Arrays und führt Matrixmultiplikationen durch.
Syntax:
numpy.dot(x, y, out=None)
Parameter
Hier
x, y: Eingabearrays. x und y sollten beide 1-D oder 2-D sein, damit die Funktion np.dot() funktioniert
: Dies ist das Ausgabeargument für den zurückzugebenden 1-D-Array-Skalar. Andernfalls sollte ndarray zurückgegeben werden.
Rücksendungen
Die Funktion numpy.dot() in Python gibt ein Skalarprodukt aus zwei Arrays x und y zurück. Die Funktion dot() gibt einen Skalar zurück, wenn sowohl x als auch y 1-D sind; andernfalls gibt sie ein Array zurück. Wenn „out“ angegeben ist, wird es zurückgegeben.
Hebt
Skalarprodukt in Python löst eine ValueError-Ausnahme aus, wenn die letzte Dimension von x nicht dieselbe Größe hat wie die vorletzte Dimension von 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
Die Funktion Numpy matmul() wird verwendet, um das Matrixprodukt zweier Arrays zurückzugeben. So funktioniert es
1) 2D-Arrays, es wird ein normales Produkt zurückgegeben
2) Abmessungen > 2, das Produkt wird als Matrixstapel behandelt
3) Das 1-D-Array wird zuerst in eine Matrix umgewandelt und dann das Produkt berechnet
Syntax:
numpy.matmul(x, y, out=None)
Hier
x, y: Eingabearrays. Skalare nicht erlaubt
: Dies ist ein optionaler Parameter. Normalerweise wird die Ausgabe in ndarray gespeichert
Ejemplo:
Auf die gleiche Weise können Sie die Matrizenmultiplikation mit np.matmul berechnen
### 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)
Ausgang:
array([[19, 22], [43, 50]])
Determinante
Zu guter Letzt können Sie np.linalg.det() verwenden, wenn Sie die Determinante berechnen müssen. Beachten Sie, dass Numpy sich um die Dimension kümmert.
Ejemplo:
## Determinant 2*2 matrix ### 5*8-7*6np.linalg.det(i)
Ausgang:
-2.000000000000005
Zusammenfassung
- Python ist eine Open Source-Bibliothek verfügbar in Python, das in mathematischen, wissenschaftlichen, technischen und Data-Science-Programmierung.
- numpy.zeros() oder np.zeros Python Die Funktion wird verwendet, um eine Matrix voller Nullen zu erstellen.
- numpy.ones() in Python kann verwendet werden, wenn Sie die Gewichte während der ersten Iteration in TensorFlow und anderen statistischen Aufgaben initialisieren.
- Python Die NumPy-Reshape-Funktion wird verwendet, um ein Array zu formen, ohne seine Daten zu ändern.
- Python Die NumPy-Flatten-Funktion wird verwendet, um eine eindimensionale Kopie des Arrays zurückzugeben.
- Numpy.hstack ist eine Funktion in Python das zum horizontalen Stapeln von Sequenzen von Eingabe-Arrays verwendet wird, um ein einzelnes Array zu erstellen.
- Numpy.vstack ist eine Funktion in Python das zum vertikalen Stapeln von Sequenzen von Eingabe-Arrays verwendet wird, um ein einzelnes Array zu erstellen.
- numpy.arange() ist eine integrierte Numpy-Funktion, die ein ndarray-Objekt zurückgibt, das gleichmäßig verteilte Werte innerhalb eines definierten Intervalls enthält.
- Das Produkt Numpy.dot ist eine leistungsstarke Bibliothek für die Matrixberechnung.
- Die Funktion Numpy matmul() wird verwendet, um das Matrixprodukt zweier Arrays zurückzugeben.