„Broadcasting“ bezieht sich darauf, wie NumPy Arrays unterschiedlicher Dimensionen während arithmetischer Operationen verarbeitet. Das kleinere Array wird innerhalb bestimmter Grenzen über das größere Array „broadcastet“, um sicherzustellen, dass ihre Formen konsistent sind. Broadcasting ermöglicht Ihnen die Vektorisierung Array-Operationen, sodass Sie eine Schleife in C anstelle von Python durchführen können
Dies wird ohne die Notwendigkeit unnötiger Datenkopien erreicht, was zu effizienten Algorithmusimplementierungen führt. In manchen Fällen ist Broadcasting eine negative Idee, da es zu einer verschwenderischen Speichernutzung führt, die die Berechnung verlangsamt.In diesem Artikel zeigen wir Ihnen, wie Sie mit Python Broadcasting mit NumPy-Arrays durchführen.
在给定数组上执行广播的步骤-
Beispiel
import numpy as np # Getting list of numbers from 0 to 7 givenArray = np.arange(8) # Adding a number to the numpy array result_array = givenArray + 9 print("The input array",givenArray) print("Result array after adding 9 to the input array",result_array)
The input array [0 1 2 3 4 5 6 7] Result array after adding 9 to the input array [ 9 10 11 12 13 14 15 16]
将具有兼容维度的两个数组相加
Beispiel
import numpy as np # Getting the list of numbers from 0 to 11 and reshaping it to 3 rows and 4 columns givenArray_1 = np.arange(12).reshape(3, 4) # Printing the shape(rowsize, columnsize) of array print("The shape of Array_1 = ", givenArray_1.shape) # Getting list of numbers from 0 to 2 and reshaping it to 3 rows and 1 columns givenArray_2 = np.arange(3).reshape(3, 1) print("The shape of Array_2 = ", givenArray_2.shape) # Summing both the arrays print("Input array 1 \n",givenArray_1) print("Input array 2 \n",givenArray_2) print("Summing both the arrays:") print(givenArray_1 + givenArray_2)
The shape of Array_1 = (3, 4) The shape of Array_2 = (3, 1) Input array 1 [[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11] ] Input array 2 [[0] [1] [2]] Summing both the arrays: [[ 0 1 2 3] [ 5 6 7 8] [10 11 12 13]]
将具有不兼容维度的两个数组求和
Beispiel
import numpy as np # Getting a list of numbers from 0 to 11 and reshaping it to 3 rows and 4 columns givenArray_1 = np.arange(20).reshape(6, 4) # Printing the shape(rowsize, columnsize) of array print("The shape of Array_1 = ", givenArray_1.shape) # Getting list of numbers from 0 to 5 and reshaping it to 3 rows and 1 columns givenArray_2 = np.arange(6).reshape(6, 1) print("The shape of Array_2 = ", givenArray_2.shape) # Summing both the arrays print("Summing both the arrays:") print(givenArray_1 + givenArray_2)
Traceback (most recent call last): File "main.py", line 3, in givenArray_1 = np.arange(20).reshape(6, 4) ValueError: cannot reshape array of size 20 into shape (6,4)
Es kann nicht in eine Matrix der Größe 20 eingefügt werden (es ist eine Matrix der Größe 6*4 = 24 erforderlich).
Summieren von mehrdimensionalen Numpy-Arrays und linearen Arrays
Beispiel 1
import numpy as np # Getting list of numbers from 0 to 14 and reshaping it to 5 rows and 3 columns givenArray_1 = np.arange(15).reshape(5, 3) # Printing the shape(rowsize, columnsize) of array print("The shape of Array_1 = ", givenArray_1.shape) # Getting list of numbers from 0 to 2 givenArray_2 = np.arange(3) print("The shape of Array_2 = ", givenArray_2.shape) # Summing both the arrays print("Array 1 \n",givenArray_1) print("Array 2 \n",givenArray_2) print("Summing both the arrays: \n",givenArray_1 + givenArray_2)
The shape of Array_1 = (5, 3) The shape of Array_2 = (3,) Array 1 [[ 0 1 2] [ 3 4 5] [ 6 7 8] [ 9 10 11] [12 13 14]] Array 2 [0 1 2] Summing both the arrays: [[ 0 2 4] [ 3 5 7] [ 6 8 10] [ 9 11 13] [12 14 16]]
Beispiel 2
import numpy as np givenArray_1 = np.arange(240).reshape(6, 5, 4, 2) print("The shape of Array_1: ", givenArray_1.shape) givenArray_2 = np.arange(20).reshape(5, 4, 1) print("The shape of Array_2: ", givenArray_2.shape) # Summing both the arrays and printing the shape of it print("Summing both the arrays and printing the shape of it:") print((givenArray_1 + givenArray_2).shape)
The shape of Array_1: (6, 5, 4, 2) The shape of Array_2: (5, 4, 1) Summing both the arrays and printing the shape of it: (6, 5, 4, 2)
结论
Das obige ist der detaillierte Inhalt vonWie führe ich eine Numpy-Übertragung mithilfe eines dynamischen Arrays mit Python durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!