全國(guó)咨詢(xún)/投訴熱線(xiàn):400-618-4000

首頁(yè)技術(shù)文章正文

科學(xué)計(jì)算庫(kù)NumPy:矢量化運(yùn)算的方式

更新時(shí)間:2022-10-07 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  NumPy數(shù)組不需要循環(huán)遍歷,即可對(duì)每個(gè)元素執(zhí)行批量的算術(shù)運(yùn)算操作,這個(gè)過(guò)程叫做矢量化運(yùn)算。不過(guò),如果兩個(gè)數(shù)組的大小(ndarray.shape)不同,則它們進(jìn)行算術(shù)運(yùn)算時(shí)會(huì)出現(xiàn)廣播機(jī)制。除此之外,數(shù)組還支持使用算術(shù)運(yùn)算符與標(biāo)量進(jìn)行運(yùn)算。接下來(lái),筆者先來(lái)介紹一下矢量化運(yùn)算。

  在NumPy中,大小相等的數(shù)組之間的任何算術(shù)運(yùn)算都會(huì)應(yīng)用到元素級(jí),即只用于位置相同的元素之間,所得的運(yùn)算結(jié)果組成一個(gè)新的數(shù)組。接下來(lái),通過(guò)一張示意圖來(lái)描述什么是矢量化運(yùn)算,具體如圖2-1所示。

1665111755849_形狀相同的數(shù)組運(yùn)算.jpg

  圖2-1 形狀相同的數(shù)組運(yùn)算

  由圖2-1可知,數(shù)組arr1與arr2對(duì)齊以后,會(huì)讓相同位置的元素相加得到一個(gè)新的數(shù)組result。其中,result數(shù)組中的每個(gè)元素為操作數(shù)相加的結(jié)果,并且結(jié)果的位置跟操作數(shù)的位置是相同的。

  大小相等的數(shù)組之間的算術(shù)運(yùn)算,示例代碼如下。

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.]])


分享到:
在線(xiàn)咨詢(xún) 我要報(bào)名
和我們?cè)诰€(xiàn)交談!