Python科学计算扩展库NumPy之广播(Broadcast)
廣播的規(guī)則:
??? 讓所有輸入數(shù)組都向其中形狀最長(zhǎng)的數(shù)組看齊,形狀中不足的部分都通過(guò)在前面加 1 補(bǔ)齊。
??? 輸出數(shù)組的形狀是輸入數(shù)組形狀的各個(gè)維度上的最大值。
??? 如果輸入數(shù)組的某個(gè)維度和輸出數(shù)組的對(duì)應(yīng)維度的長(zhǎng)度相同或者其長(zhǎng)度為 1 時(shí),這個(gè)數(shù)組能夠用來(lái)計(jì)算,否則出錯(cuò)。
??? 當(dāng)輸入數(shù)組的某個(gè)維度的長(zhǎng)度為 1 時(shí),沿著此維度運(yùn)算時(shí)都用此維度上的第一組值。
簡(jiǎn)單理解:對(duì)兩個(gè)數(shù)組,分別比較他們的每一個(gè)維度(若其中一個(gè)數(shù)組沒(méi)有當(dāng)前維度則忽略),滿(mǎn)足:
??? 數(shù)組擁有相同形狀。
??? 當(dāng)前維度的值相等。
??? 當(dāng)前維度的值有一個(gè)是 1。
若條件不滿(mǎn)足,拋出 "ValueError: frames are not aligned" 異常。
#!/usr/bin/env python import numpy as npa = np.array([10, 20, 30, 40]) b = np.array([100, 100, 100, 100]) c = np.array([100])result1 = a + b print(result1)result2 = a + c print(result2)打印結(jié)果如下:
[110 120 130 140] [110 120 130 140]?
總結(jié)
以上是生活随笔為你收集整理的Python科学计算扩展库NumPy之广播(Broadcast)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python科学计算扩展库NumPy之n
- 下一篇: 全面对比 MATLAB、Julia、Py