Numpy Broadcasting

Numpy Broadcasting
Arrays unterschiedlicher Größe können nicht zu addiert, von Subtrahieren oder auf andere Weise in Arithmetik verwendet werden. Duplizieren Sie die Auswahl der kleinen, um ihm die gleichen Abmessungen und Größe zu verleihen wie das größere Array ein Ansatz. Bei der Durchführung von Array -Arithmetik bietet Numpy eine Funktion, die als Array -Rundfunk bezeichnet wird, die Ihren Code erheblich verkürzen und vereinfachen kann. Sie erfahren die Idee des Array -Rundfunks und wie Sie sie in diesem Tutorial in Numpy verwenden können. Zusätzlich werden mehrere Beispielprogramme bereitgestellt.

Was ist Numpy Broadcasting?

Bei der Durchführung arithmetischer Operationen in Arrays verschiedener Formen bezieht sich Numpy als Broadcasting. Diese Array -Operationen werden häufig an den jeweiligen Elementen durchgeführt. Wenn zwei Arrays die gleiche Form haben, kann sie mühelos an ihnen erfolgen. Obwohl dieses Konzept nützlich ist, wird das Rundfunk nicht immer empfohlen, da es zu ineffizienten Speicherverbrauch führen kann, die die Berechnung verlangsamt. Numpy -Operationen werden häufig an Array -Paaren durchgeführt, die von Elementen unterteilt sind.

Rundfunkregeln

Eine bestimmte Reihe von Richtlinien muss beim Rundfunk beobachtet werden. Diese werden unten beschrieben:

  1. Die niedrigere Rangarray -Form ist wichtig, um mit 1s vorzubereiten, bis beide Formen der Arrays die gleiche Länge haben, wenn zwei Arrays nicht den gleichen Rang haben.
  2. Zwei Arrays gelten als kompatibel, wenn sie die gleiche Dimensionsgröße haben oder wenn einer von ihnen die Dimensionsgröße auf 1 eingestellt hat.
  3. Die Arrays können nur zusammen übertragen werden, wenn ihre Größen und Abmessungen übereinstimmen.
  4. Sobald das Rundfunk abgeschlossen ist, handelt jedes Array so.
  5. Eines der Arrays verhält sich so, als ob es mit dieser Dimension repliziert wurde, wenn das andere Array eine Dimension von mehr als 1 hat und das erste Array eine Dimension von 1 hat.

Lassen Sie uns nun einige Beispiele für die Implementierung des Konzepts des Rundfunks diskutieren.

Beispiel 1:

Bei Arrayspaaren werden Numpy-Operationen in der Regel Element-by-Element durchgeführt. Die beiden Arrays müssen im einfachsten Szenario die gleiche Form haben, wie im folgenden Beispiel:

Numpy importieren
One_arr = Numpy.Array ([2).0, 3.0, 1.0]))
Two_arr = Numpy.Array ([3.0, 3.0, 3.0]))
print (One_arr * Two_arr)

Wie Sie aus dem obigen Code sehen können, haben wir zwei Arrays: 'One_arr' und 'Two_ arr'. Jeder davon hat einen separaten Satz von Werten. Die Werte in 'One_arr' sind [2.0,3.0,1.0] und 'zwei _arr' sind [3.0,3.0,3.0]. Sie können dann sehen, dass das Ergebnis der Berechnung des Produkts dieser beiden Arrays wie folgt ist:

Wenn bestimmte Anforderungen von den Formen der Arrays erfüllt werden, senkt die Rundfunkregel von Numpy diese Einschränkung. Wenn ein Array und ein skalarer Wert in einer Operation verbunden sind, wird das Rundfunk in seiner grundlegendsten Form demonstriert. Wie Sie sehen können, ist 3 in der Variablen mit dem Namen 'Two_arr enthalten.''

Numpy importieren
One_arr = Numpy.Array ([2).0, 3.0, 1.0]))
Two_arr = 3.0
print (One_arr * Two_arr)

Der obige Code erzeugt das folgende Ergebnis.

In dem vorhergehenden Beispiel, wobei 'Two_arr' ein Array war, ist das Ergebnis gleichwertig. Wir können uns vorstellen, dass sich der Skalar 'Two_arr' während des arithmetischen Prozesses in ein Array mit der gleichen Form wie 'One _arr erweitert wird.'The Array' Two_arr 'enthält neue Elemente, die lediglich Duplikate des ersten Skalars sind. Der Dehnungsvergleich ist nur hypothetisch. Um Rundfunkoperationen als Speicher und rechnerisch wirtschaftlich als machbar zu machen, ist Numpy intelligent genug, um den ursprünglichen skalaren Wert zu verwenden, anstatt Kopien zu produzieren.

Beispiel 2:

Hier ist ein weiteres einfaches Python -Programm, das Broadcasting ausführt. Wieder werden zwei Arrays erstellt, die unterschiedliche Werte enthalten. Es ist notwendig, 'First_arr' in einen Spaltenvektor mit einer 3 × 1 -Form umzuwandeln, um ein äußeres Produkt zu berechnen. Anschließend wird die Sendung gegen 'Second_arr' durchgeführt, um ein Ergebnis von Größe 3 × 2 zu liefern, das als äußeres Produkt von 'First_arr' und 'Second_arr bezeichnet wird.'Broadcasting to 2 × 3 ist möglich, da' result_arr 'die Form 2 × 3 sowie die Form hat (3,).

Nachdem Sie alle oben genannten Schritte befolgt haben.'Diese haben Dimensionen von 2 × 3 und (2,). Transponieren 'result_arr' liefert eine Form von 3 × 2, die dann gegen 'Second_arr' ausgestrahlt werden kann, um dasselbe Form zu erhalten. In der Regel ergibt die Umwandlung dieses Endes ein Endprodukt in der Form 2 × 3.

Numpy importieren
First_arr = Numpy.Array ([12, 24, 14])
Second_arr = Numpy.Array ([15, 22])
Druck (Numpy.Reshape (First_arr, (3, 1)) * Second_arr)
result_arr = numpy.Array ([[12, 22, 31], [15, 22, 45]])
print (result_arr + first_arr)
print ((result_arr.T + Second_arr).T)
drucken (result_arr + numpy.Reshape (Second_arr, (2, 1)))
print (result_arr * 2)

Sie können die folgende Ausgabe anzeigen.

Beispiel 3:

Ein dreidimensionales Array kann mit dem folgenden Python-Programm ausgestrahlt werden. In diesem Beispiel wurden zwei Arrays mit dem Namen "First_arr" und "Second_arr" generiert. Das Array 'First_arr' enthält [4,13,26,12] Werte und 'Second_arr' [32,67,45,17] Werte. Die 2-Dimensionen des ersten Arrays machen einen Unterschied. Die Summe des ersten und zweiten Arrays wird unten angezeigt, nachdem der Code ausgeführt wurde. Sie sehen. Die Summe dieser beiden neu erzeugten Arrays wird dann angezeigt.

Numpy importieren
First_arr = Numpy.Array ([[4, 13, 26, 12], [32, 67, 45, 17]])
Second_arr = Numpy.Array ([24,45,66,87])
print ("\ n Erstes Array:")
print (first_arr)
print ("\ n zweites Array:")
print (Second_arr)
print ("\ nsum des ersten und zweiten Arrays:")
Sum_Result = First_arr + Second_arr;
print (sum_result)

Hier ist der Ausgangscreenshot des angegebenen Code.

Beispiel 4:

Das letzte Python-Programm, das ein dreidimensionales Array überträgt. In diesem Programm werden zwei Arrays angegeben, von denen die ersten drei Dimensionen haben. Die Summe des ersten und zweiten Arrays wird wie oben gezeigt angezeigt, nachdem der Code ausgeführt wurde. Obwohl die Werte in diesen Arrays variieren, ist der verbleibende Code der gleiche wie der im obige Beispielprogramm verwendet.

Numpy importieren
First_arr = Numpy.Array ([[12, 45, 22, 13], [22, 54, 25, 12], [50, 40, 18, 26]])
Second_arr = Numpy.Array ([12,44,22,12])
print ("\ n Erstes Array:")
print (first_arr)
print ("\ n zweites Array:")
print (Second_arr)
print ("\ nsum des ersten und zweiten Arrays:")
Sum_Result = First_arr + Second_arr;
print (sum_result)

In der Abbildung unten sehen Sie, dass ein dreidimensionales Array aus dem ersten Array präsentiert wird, gefolgt von einem zweidimensionalen Array aus dem zweiten Array und dem Ergebnis dieser beiden Verwendung des Rundfunkprinzips.

Abschluss

In diesem Artikel wurde über Rundfunk, ein entscheidendes Python -Konzept, erläutert. In Numpy bezieht sich der Begriff "Rundfunk" auf die Fähigkeit, Arrays verschiedener Formen zu behandeln und arithmetische Operationen auszuführen, die häufig durchgeführt werden. Das oben genannte Thema wurde gründlich mit einer Vielzahl von Beispielen bedeckt. In diesem Artikel wurden die genannten Beispielprogramme verwendet, um zu demonstrieren. Sie können versuchen, diese Beispiele auf Ihrem System auszuführen und die Ergebnisse anzusehen, um besser zu verstehen, wie alles im Allgemeinen funktioniert.