Numpy: Eine leistungsstarke Python-Bibliothek, die wir verwenden, wenn wir wissenschaftliche Berechnungen an unserem Datensatz durchführen.
Vorteile der Verwendung von Numpy
- Speichereffizienz: Numpy speichert homogene Daten. Dadurch können wir unser Numpy-Array effizient zum Speichern numerischer Daten verwenden.
- Hohe Leistung: Nmpy nutzt die Leistung von Vektorisierung(Der Prozess, bei dem das gesamte Array von Elementen bearbeitet wird, anstatt jede Berechnung iterativ durchzuführen.) Außerdem nutzt die Funktion größtenteils die Hochgeschwindigkeitsleistung von C und Fortran, was Numpy noch schneller macht.
- Benutzerfreundlichkeit und Help: Die Numpy-Bibliothek funktioniert sehr intestine mit anderen Bibliotheken wie Pandas, Scipy und Matplotlib. Wir schreiben keinen iterativen Code für arithmetische Funktionen und enthalten viele komplexe Funktionen für lineare Algebra und Statistik.
Numpy Broadcasting: Numpy-Broadcasting bietet uns mit einigen Einschränkungen eine gewisse Hebelwirkung, um arithmetische Operationen auf Arrays unterschiedlicher Größe durchzuführen.
Wenn wir Arrays oder Matrizen mit derselben Dimension und derselben Type haben, ist keine Übertragung erforderlich. Wir können mathematische Operationen ausführen, ohne darüber nachzudenken.
Broadcasting wird automatisch intern angewendet, wenn wir Arrays mit unterschiedlichen Abmessungen und Formen haben.
Sehen wir uns einige Beispiele an.
Beispiel 1.
Hier ist unser arr 2-d und wie wir wissen, ist unser Skalar 0-d, da wir eine mathematische Operation durchführen können, aber wir wissen auch, dass Numpy Vektorisierung verwendet, die nur bei Arrays derselben Größe und derselben Dimensionen funktioniert, aber hier ist es vollständig anders.
Hier hilft unser Numpy-Rundfunk, zu verstehen, wie.
So habe ich es verstanden.
Regel 1. Nur anwenden, wenn die Dimension für Eingabearrays unterschiedlich ist.
In diesem Fall fügt numpy automatisch eine Dimension zum kleineren Eingabearray hinzu, indem hyperlinks auf der numpy-Type eine hinzugefügt wird
.
Beispiel.
Nehmen wir an, arr1 der Type (2,3) und arr2 (3, ). Offensichtlich hat arr2 jetzt weniger Dimension. Was Numpy jetzt tun wird, ist, arr2 in 2-d umzuwandeln, indem es 1 zu seiner Type wie folgt hinzufügt
Die Type von arr2 ist (1,3), jetzt ist die Dimension für beide Arrays gleich.
Kann Numpy jetzt Broadcasting durchführen?
Ans ist Nein.
Regel 2. Diese Regel wird angewendet, wenn wir Eingabearrays mit denselben Abmessungen haben und jede entsprechende Type entweder gleich oder 1 ist.
In unserem ersten Beispiel
Der Skalierer wird in (1,1) konvertiert, um der Dimension anderer Arrays zu entsprechen. Jetzt haben skalare 2D-Arrays die Type (1,1), die gestreckt wird, um mit unserer anderen Array-Type (2,3) übereinzustimmen. Dies erreichen wir, indem wir dieselben Elemente im Array wiederverwenden.
Jetzt kann Numpy problemlos jede Operation daran durchführen.
Kurz gesagt, NumPy kann nur senden, wenn
Gegenbeispiel 2.
Nehmen wir an, arr1 der Type (1,2,3) 3-D-Array
und arr2 der Type (2,4)
Nach der Anwendung von Regel 1 hat arr2 die Type (1,2,4). Jetzt können wir hier sehen, dass 4 nicht mit 3 übereinstimmt und auch keiner von ihnen 1 ist, sodass wir Regel 2 hier nicht anwenden können, sodass hier und hier keine Übertragung stattfinden wird Wir werden hier eine Fehlermeldung erhalten.
Beispiel 2.
arr1 der Type (1,2,3)
arr2 der Type (2,1)
Wenn wir hier von rechts sehen, haben wir entweder die gleiche Type oder wir haben eine davon.
additionally sollte unsere Übertragung intestine funktionieren, weil
arr2 nach Regel 1 hat die Type (1,2,1) und nach Regel 3 (1,2,3) haben wir jetzt die gleiche Type und die Übertragung in die gleiche Richtung kann hier problemlos angewendet werden.
Beispiel 3 **.
arr1 der Type(1,3)
arr2 der Type(3,1)
Hier kommt nun die knifflige Frage
Lassen Sie uns prüfen, ob Regel 1 beide die gleiche Dimension hat, sodass sie erfüllt ist.
Regel 2: Beide entsprechenden Formen sind entweder 1 oder die Mathe-Bedingung ist wahr, daher wird hier die Numpy-Übertragung angewendet.
Beachten Sie, dass hier die Type des Ausgabearrays von einem Most der entsprechenden Type übernommen wird, im dritten Beispiel ist es (3,3).
Gradientenabstieg: Es ist der Algorithmus für maschinelles Lernen, den wir für die lineare Regression verwenden.
Das Drawback Wir hatten in Gradient Descent diesen Algorithmus, der jede Datenzeile verwendet, um den Quadratsummenfehler zu berechnen. Dabei verwenden wir die Anzahl der Epochen, in denen wir unseren Algorithmus ausführen. Wenn wir nun Millionen von Datenzeilen haben, wird unser Algorithmus langsamer.
Stochastischer Gradientenabstieg. Stochastic Gradient Descent ist eine intelligentere Model von Gradient Descent. In jeder Iteration wird nur ein Datenpunkt für den Summenquadratfehler verwendet.
Da probabilistisch nur ein Datenpunkt verwendet wird, weist die Kostenfunktion eine größere Variation auf.
Dieses Drawback wird durch Mini gelöst Batch-Gradientenabstieg Dabei haben wir unseren gesamten Datensatz in okay Mini-Batches unterteilt und anstatt den gesamten Datensatz zu verwenden, verwenden wir diese Mini-Batches jedes Mal in der Iteration.