利用 python 原生的功能,建立乙個二維的 list,變數名稱為 x ,其 shape 為 (3,1)
現在我想把它擴充套件為 (3,4)的二維 list, 並且每列都為 [3, 1, 4],如下所示:
利用 list 的 * 4 便可擴充套件成上面的二維形式
同理,建立乙個二維 list , 變數名稱為 y, 其 shape 為 (1, 4)
然後,擴充套件為 (3,4) 的二維 list
好了,現在二維 list 變數 x, y, shape 變為一樣了。
接下來,分別比較它們各自的對應元素,如果 x[i][j] < y[i][j] ,則選擇 x[i][j] ,並加 1, 否則,選擇 y[i][j], 並減 1,並返回乙個對應維度的二維 list.
實現以上功能,還得至少需要以下 3 行**,返回結果 result
綜上,大概一共需要 7,8 行**得到想要的結果
如果使用 numpy 中的函式,可能只需要 1 行,
np.where 第乙個引數,意義為判斷條件,官方的解釋如下,x , y 和 condition 需要是可廣播的,並最終傳播為某種 shape.
之所以,從文章開頭到後面大部分篇幅,都在使用 python 原生的功能實現與 numpy 同樣的效果,就是為了更好的說明 numpy 的傳播機制。
通過對比,或許更容易明白 numpy 的傳播機制。希望效果真如此吧!
有序廣播和無序廣播的區別
1.無序廣播 通過context.sendbroadcast 方法來傳送,它是完全非同步的。所有的receivers 接收器 的執行順序不確定,因此所有的receivers 接收器 接收broadcast的順序不確定。這種方式效率更高,但是broadcastreceiver無法使用setresult...
Python 中 NumPy 的廣播
廣播描述了 numpy 如何在算術運算期間處理具有不同形狀的陣列。為了實現形狀相容,較小的陣列仍在較大的陣列上 廣播 廣播提供了一種向量化陣列操作的方法,以便在 c 而不是 python 中進行迴圈。numpy 通常在逐個元素的基礎上對陣列對進行操作。在最簡單的情況下,兩個陣列必須具有完全相同的形狀...
python中時間的加n和減n運算
好多朋友都遇到過python推算時間的問題,有些把時間轉換成整數做推算,這樣遇到特殊的時間和日期就會出現錯誤,在python中時間的推算很簡單,主要就是用到datetime.timedelta方法,進行時間的加n減n運算 import datetime d1 datetime.datetime.no...