Numpy陣列的廣播機制

2021-10-10 04:22:58 字數 802 閱讀 2948

numpy陣列不需要迴圈遍歷,即可對每個元素執行批量的算術運算操作(向量化運算)。當兩個陣列大小(numpy.shape)不同時,進行算術運算會出現廣播機制。

陣列在進行向量化運算的時,要求陣列形狀時相等的。當形狀不等的陣列執行算術運算的時候,就會出現廣播機制,該機制會對陣列進行擴充套件,使陣列的shape屬性值一樣,就可以進行向量化運算了。

import numpy as np

arr1 = np.array([[

0],[

1],[

2],[

3]])

print

(arr1.shape)

arr2 = np.array([1

,2,3

])print

(arr2.shape)

val = arr2+arr1

print

(val)

輸出結果(4, 1) //arr1的shape

(3,) //arr2的shape

[[1 2 3]

[2 3 4]

[3 4 5]

[4 5 6]]

由於arr1和arr2的shape不等,故通過廣播機制進行如下圖的擴充套件

1、陣列的某一維度等長

2、其中乙個陣列的某一維度為1

numpy廣播機制

1.廣播法則是為了更好的處理不同維數矩陣之間的運算 1 廣播第一法則是,如果所有的輸入陣列維度不都相同,乙個 1 將被重複地新增在維度較小的陣列上直至所有的陣列擁有一樣的維度。2 廣播第二法則確定長度為1的陣列沿著特殊的方向表現地好像它有沿著那個方向最大形狀的大小。對陣列來說,沿著那個維度的陣列元素...

Numpy中陣列的廣播機制總結

numpy中的對於陣列間的算術運算採用 元素一 一對應 的計算機制,因而一般要求兩個陣列的形狀相同才能進行陣列間的算術運算,但是在某些情況中,numpy中允許符合一定規則的不同形狀的陣列進行算術運算。廣播的核心規則如下 上面的規則可能看起來比較難懂,簡單來說就是低維陣列要想被拓展成和高維陣列一樣的形...

numpy中的廣播機制

numpy兩個陣列的相加 相減以及相乘都是對應元素之間的操作。import numpy as np x np.array 2,2,3 1,2,3 y np.array 1,1,3 2,2,4 print x y numpy當中的陣列相乘是對應元素的乘積,與線性代數當中的矩陣相乘不一樣 輸入結果如下 ...