Von einem Übersetzer: Dies ist eine Übersetzung des Materials von Rakshit Vasudev, der DataScience seit langer Zeit studiert und die darin enthaltene Python-Sprache verwendet. Der Autor spricht über die leistungsstarke Numpy-Bibliothek, mit der Sie viele Funktionen des maschinellen Lernens und des Arbeitens mit Big Data implementieren können.
Numpy ist eine Mathematikbibliothek für Python. Damit können Sie alle Arten von Berechnungen effizient und schnell durchführen. Dank der speziellen Lösungen, die in Python verwendet werden, wird die Funktionalität von Python erheblich erweitert. Dieser Artikel befasst sich mit den Grundfunktionen von Numpy, und dies ist nur der erste Teil. andere werden etwas später veröffentlicht. Dieser Artikel richtet sich an diejenigen, die gerade erst anfangen, Numpy zu lernen und in die mutige Welt der Mathematik in Python einzusteigen.
Skillbox empfiehlt: Der Python-Entwickler von Grund auf zum Anfassen .
Wir erinnern Sie daran: Für alle Leser von „Habr“ - ein Rabatt von 10.000 Rubel bei der Anmeldung für einen Skillbox-Kurs mit dem Promo-Code „Habr“.
Bibliothek importieren
import numpy as np
An dieser Stelle teilen wir Python mit, dass np die Referenz für Numpy ist, die weiterhin verwendet wird.
Erstellen Sie nun ein Python-Array und ein NP-Array.
Es gibt keinen großen Unterschied bei der Auszahlung.
print(a) print(A) ==================================================================== [1, 2, 3, 4, 5, 6, 7, 8, 9] [1 2 3 4 5 6 7 8 9]
Warum ist es besser, ein Numpy-Array anstelle des üblichen zu verwenden? Die Antwort ist, dass wir mit np Berechnungen schneller durchführen und die Gesamtarchitektur der Anwendung ändern können.
np.arange ()
np.arange(0,10,2) ==================================================================== array([0, 2, 4, 6, 8])
([Start], Stopp, [Schritt]) ordnet die Nummern an. Das bedeutet es für ein Auto.
Wir erstellen eine np-Liste, die von 0 bis 10 beginnt, aber keine 10 enthält, und erhöhen die Zahlen jedes Mal um 2.
So bekommen wir folgendes:
Array ([0, 2, 4, 6, 8])
Es ist wichtig zu beachten, dass die letzte Ziffer nicht in der Liste enthalten ist.
Ein weiteres Beispiel:
np.arange(2,29,5) ==================================================================== array([2, 7, 12, 17, 22, 27])
Dieses Array kann auch als Matrix oder Vektor bezeichnet werden. Machen Sie sich deshalb keine Sorgen, wenn ich zum Beispiel sage: "Die Form der Matrix ist 2 * 3." All dies bedeutet, dass unser Array irgendwann ungefähr so aussehen wird:
array([2, 7, 12], [17, 22, 27])
Lassen Sie uns nun über einen Parameter wie die Form für das Standard-np-Array sprechen. Form ist hier ein Attribut. Ein Beispiel für seine Verwendung finden Sie unten.
A = [1, 2, 3, 4, 5, 6, 7, 8, 9] A.shape ==================================================================== (9,)
Dies ist eine Zahlenmatrix, in der in einer Reihe nur 9 Elemente vorhanden sind. Im Prinzip ist eine 1 * 9-Matrix ideal, oder?
Grundsätzlich ja, und dafür kommt reshape () ins Spiel. Dies ist eine Methode, mit der die Größe der ursprünglichen Matrix wie gewünscht geändert wird.
Hier ist ein Beispiel für die Verwendung von reshape () in der Praxis.
A = [1, 2, 3, 4, 5, 6, 7, 8, 9] A.reshape(1,9) ==================================================================== array([[1, 2, 3, 4, 5, 6, 7, 8, 9]])
Beachten Sie, dass die Umformung eine mehrdimensionale Matrix zurückgibt. Dies wird am Anfang durch zwei eckige Klammern angezeigt. [[1, 2, 3, 4, 5, 6, 7, 8, 9]] ist im Gegensatz zu [1, 2, 3, 4, 5, 6, 7, 8, 9] eine potenziell mehrdimensionale Matrix.
Ein weiteres Beispiel:
B = [1, 2, 3, 4, 5, 6, 7, 8, 9] B.reshape(3,3) ==================================================================== array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
Wenn wir den Formparameter für B nehmen, ist es (3.3):
B.shape ==================================================================== (3,3)
Fahren wir mit np.zeros () fort
Was ist in diesem Code geschrieben?
np.zeros((4,3)) ==================================================================== ???????????
Nämlich: hier wird eine mit Nullen gefüllte 3 * 4-Formatmatrix angegeben. Hier ist die Schlussfolgerung:
np.zeros((4,3)) ==================================================================== array([[0., 0., 0.], [0., 0., 0.], [0., 0., 0.], [0., 0., 0.]])
np.zeros ((n, m)) gibt eine mit Nullen gefüllte n * m-Formatmatrix zurück. Alles ist einfach.
Was macht np.eye ()?
Gibt uns eine Einheitsmatrix mit bestimmten Merkmalen zurück.
np.eye(5) ==================================================================== array([[1., 0., 0., 0., 0.], [0., 1., 0., 0., 0.], [0., 0., 1., 0., 0.], [0., 0., 0., 1., 0.], [0., 0., 0., 0., 1.]])
Wie multipliziere ich zwei Matrizen?
Kein Problem: Hierfür wird np.dot () verwendet. Diese Funktion ist ein Skalarprodukt, wenn Vektoren und das Matrixprodukt (das gewöhnlichste) an sie übergeben werden.
Beispiel: A = (2,3) & B = (3,2). Hier beträgt die Anzahl der Spalten in A 3. Die Anzahl der Zeilen in B beträgt 3. Da die Eigenschaften übereinstimmen, ist eine Multiplikation möglich.
Wir haben Matrizen für die Multiplikation vorbereitet. Als nächstes handeln wir.
Fügen wir nun die einzelnen Elemente zur Matrix hinzu.
np.sum () fügt der Matrix Elemente hinzu.
Wir haben jedoch zwei Möglichkeiten.
1. In Reihen falten
6 - die Summe der ersten Reihe (1, 2, 3).
15 Sekunden (4, 5, 6).
24 - Drittel (7, 8, 9).
2. Spalten einklappen
12 - die Summe der ersten Spalte (1, 4, 7).
15 - nach dem zweiten (2, 5, 7).
18 - nach dem dritten (3, 6, 9).
Unten sehen Sie ein vom Autor erstelltes Video, in dem alles, was oben beschrieben wurde, noch einmal klarer erklärt wird.
Skillbox empfiehlt: