Heim >Backend-Entwicklung >Python-Tutorial >Erhalten Sie ein tieferes Verständnis der Kernfunktionen und Vorteile der Numpy-Bibliothek
Ein tiefgreifendes Verständnis der Kernfunktionen und Vorteile der Numpy-Bibliothek erfordert spezifische Codebeispiele
Python ist eine Open-Source-Programmiersprache auf hoher Ebene, und Numpy ist eine wichtige Erweiterungsbibliothek für Python. Numpy ist die Abkürzung für Numerical Python. Es bietet ein leistungsstarkes mehrdimensionales Array-Objekt und entsprechende verschiedene Operationsfunktionen. Es ist eine der Kernbibliotheken des wissenschaftlichen Python-Computings. In Bereichen wie Datenverarbeitung, maschinellem Lernen und Deep Learning spielt Numpy eine wichtige Rolle. Dieser Artikel bietet eine ausführliche Einführung in die Kernfunktionen und Vorteile der Numpy-Bibliothek mit spezifischen Codebeispielen.
Die Kerndatenstruktur von Numpy ist ndarray (N-dimensionales Array), ein effizientes mehrdimensionales Array-Objekt. Die Elementtypen des ndarray-Arrays müssen gleich sein. Dies können Ganzzahlen, Gleitkommazahlen usw. sein und werden kontinuierlich im Speicher gespeichert. Das ndarray-Array verfügt über mehrere wichtige Attribute, darunter Form (Array-Dimension), Dtype (Elementtyp), Größe (Gesamtzahl der Elemente) und ndim (Array-Dimension).
Das Folgende ist ein einfaches Beispiel für die Erstellung eines Ndarray-Arrays:
import numpy as np a = np.array([1, 2, 3]) print(a) print(a.shape) print(a.dtype)
Das Ausgabeergebnis ist:
[1 2 3] (3,) int64
Wir können die Abmessungen des Ndarray-Arrays auch über die reshape()-Methode ändern:
b = np.array([[1, 2, 3], [4, 5, 6]]) print(b.shape) c = b.reshape(3, 2) print(c)
Das Ausgabeergebnis ist:
(2, 3) [[1 2] [3 4] [5 6]]
Eine weitere Funktion von Numpy ist die Vektorisierungsoperation, die nicht nur die Recheneffizienz erheblich verbessert, sondern auch die Schwierigkeit beim Schreiben von Code vereinfacht. Beispielsweise möchten wir jedem Element in einem ndarray-Array eine bestimmte Zahl hinzufügen. Wenn wir keine Vektorisierungsoperationen verwenden, müssen wir eine Schleife schreiben. Ein solcher Code ist oft äußerst ineffizient und schwierig zu warten. Mit der Vektorisierungsoperation von Numpy müssen wir nur eine Codezeile schreiben, um dies zu erreichen:
import numpy as np a = np.array([1, 2, 3]) b = a + 1 print(b)
Das Ausgabeergebnis ist:
[2 3 4]
Mit der Broadcast-Funktion von Numpy können wir Arrays unterschiedlicher Form berechnen, was auch The ist Schlüssel zu Numpys Vektorisierungsoperationen. Die Broadcast-Regeln sind sehr einfach: Wenn die Achsenlängen der Hinterkantenabmessungen (d. h. die Abmessungen ab dem Ende) zweier Arrays übereinstimmen oder die Länge eines von ihnen 1 beträgt, gelten sie als Broadcast-kompatibel. Die Übertragung erfolgt bei fehlenden Dimensionen oder Dimensionen der Länge 1.
Das Folgende ist ein einfaches Beispiel für eine Übertragung:
a = np.arange(4) b = np.ones(3) c = a[:, np.newaxis] + b print(c)
Das Ausgabeergebnis ist:
[[1. 1. 1.] [2. 2. 2.] [3. 3. 3.] [4. 4. 4.]]
Im obigen Beispiel haben wir ein eindimensionales Array a und ein eindimensionales Array b mit unterschiedlichen Dimensionen erstellt. Damit sie Vektorisierungsoperationen durchführen können, verwenden wir die Broadcast-Funktion, um dem Array a eine neue Dimension hinzuzufügen, sodass die Dimensionen von a und b gleich sind.
numpys ufunc-Funktion ist eine Reihe von Funktionen, die auf ndarray-Arrays arbeiten, einschließlich: Addieren (Addieren), Subtrahieren (Subtrahieren), Multiplizieren (Multiplizieren), Dividieren (Dividieren) und Ermitteln des Rests (Rest) usw. Das Besondere an diesen Funktionen ist, dass sie ohne Schleifen auf dem gesamten Array arbeiten können. Darüber hinaus unterstützt die ufunc-Funktion auch die Broadcast-Funktion, die auf zwei Arrays unterschiedlicher Form betrieben werden kann, was sehr praktisch und praktisch ist.
Hier ist ein einfaches Beispiel einer ufunc-Funktion:
a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) c = np.add(a, b) print(c)
Die Ausgabe lautet:
[5 7 9]
Slicing und Indizierung in Numpy ähneln dem Slicing und Indizierung in Python. Da ndarray-Arrays mehrdimensional sind, sind Numpys Slicing und Indizierung flexibler. Wir können die Anweisung a[i] verwenden, um auf das i-te Element im Numpy-Array zuzugreifen, oder wir können a[i:j] verwenden, um das i-te bis j-te Element im Array abzurufen. Darüber hinaus können wir Ellipsen (...) verwenden, um alle anderen Dimensionen darzustellen. Für mehrdimensionale Arrays können wir a[i, j] verwenden, um die Elemente der i-ten Zeile und j-ten Spalte abzurufen, a[:, j], um alle Elemente der j-ten Spalte a abzurufen [i, :], um alle Elemente der i-ten Zeile usw. abzurufen.
Das Folgende ist ein einfaches Beispiel für das Schneiden und Indizieren eines mehrdimensionalen Arrays:
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(a[0, 1]) print(a[1, :]) print(a[:, 0:2])
Die Ausgabe lautet:
2 [4 5 6] [[1 2] [4 5] [7 8]]
Numpy bietet auch eine Reihe von Funktionen zum Generieren von Zufallszahlen, darunter: np.random .rand(), np.random.randn(), np.random.randint(), np.random.shuffle() usw. Diese Funktionen können in Bereichen wie Datenanalyse, Simulation und maschinellem Lernen eingesetzt werden.
Das Folgende ist ein einfaches Beispiel für die Generierung von Zufallszahlen:
a = np.random.rand(3) b = np.random.randn(3) c = np.random.randint(0, 10, size=(2, 3)) print(a) print(b) print(c)
Die Ausgabe lautet:
[0.1688015 0.15220492 0.44022309] [-0.09097023 1.19200587 1.17187612] [[5 8 8] [0 9 1]]
Zusammenfassung
numpy ist eine sehr leistungsstarke und flexible Bibliothek mit vielen Kernfunktionen und Vorteilen, darunter: effiziente mehrdimensionale Array-Objekte, Vektorisierungsoperationen und Broadcasting, Ufunc-Funktionen, Slicing und Indizierung, Zufallszahlengenerierung und mehr. In Bereichen rund um Datenwissenschaft und künstliche Intelligenz spielt Numpy eine wichtige und unersetzliche Rolle. Wir müssen die Verwendung und Code-Implementierung von Numpy genau verstehen, seine Grundprinzipien und allgemeinen Operationen beherrschen und es in der tatsächlichen Arbeit und im Studium anwenden, um die Effizienz und Genauigkeit zu verbessern.
Das obige ist der detaillierte Inhalt vonErhalten Sie ein tieferes Verständnis der Kernfunktionen und Vorteile der Numpy-Bibliothek. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!