更新時間:2022-10-07 來源:黑馬程序員 瀏覽量:
NumPy數(shù)組不需要循環(huán)遍歷,即可對每個元素執(zhí)行批量的算術運算操作,這個過程叫做矢量化運算。不過,如果兩個數(shù)組的大小(ndarray.shape)不同,則它們進行算術運算時會出現(xiàn)廣播機制。除此之外,數(shù)組還支持使用算術運算符與標量進行運算。接下來,筆者先來介紹一下矢量化運算。
在NumPy中,大小相等的數(shù)組之間的任何算術運算都會應用到元素級,即只用于位置相同的元素之間,所得的運算結果組成一個新的數(shù)組。接下來,通過一張示意圖來描述什么是矢量化運算,具體如圖2-1所示。
圖2-1 形狀相同的數(shù)組運算
由圖2-1可知,數(shù)組arr1與arr2對齊以后,會讓相同位置的元素相加得到一個新的數(shù)組result。其中,result數(shù)組中的每個元素為操作數(shù)相加的結果,并且結果的位置跟操作數(shù)的位置是相同的。
大小相等的數(shù)組之間的算術運算,示例代碼如下。
import numpy as np data1=np.array([[1, 2, 3], [4, 5, 6]]) data2=np.array([[1, 2, 3], [4, 5, 6]]) data1+data2 # 數(shù)組相加 array([[2, 4, 6], [8,10,12]]) data1*data2 # 數(shù)組相乘 array([[1, 4, 9], [16,25,36]]) data1-data2 # 數(shù)組相減 array([[0, 0, 0], [0, 0, 0]]) data1/data2 # 數(shù)組相除 array([[1., 1., 1.], [1., 1., 1.]])