Python的Numpy操作:如何實現逐個元素取最大值,組成新array?

最近遇到的一個困擾:對兩個Numpy的array,如何實現逐個元素取最大值,並組成新的array?
舉個栗子:已知a和b,求m。

ps.數據量非常非常大,所以用不了for循環,只能使用Numpy自己的矩陣運算方法。

多謝各位大佬指教啦~


看圖片中代碼,是你需要的嗎?


numpy.where 正是為這種情況設計的,使用很簡單,非常高效:


np.where 是一種方法,其實最簡單的還是使用 np.maximum,如下:

&>&>&> a = np.array([[3, 5, 7], [1, 9, 5]])
&>&>&> b = np.array([[2, 9, 8], [3, 6, 2]])
&>&>&> np.maximum(a, b)
array([[3, 9, 8],
[3, 9, 5]])
&>&>&> np.where(a &> b, a, b)
array([[3, 9, 8],
[3, 9, 5]])


m=np.argmax(np.concatenate([a,b],-1),-1)


推薦閱讀:

為什麼是6而不是(6)? 矩陣相乘不還是矩陣么,怎麼這是一個實數?
矩陣運算庫blas, cblas, openblas, atlas, lapack, mkl之間有什麼關係,在性能上區別大嗎?
矩陣A和矩陣B相乘,AxB為什麼不等於BxA?
請問如何證明det(e^A)=e^trA?
化行簡化階梯形矩陣有什麼技巧嗎~ 感覺一直是亂化簡 要很長時間才化出來~?

TAG:Python | 矩陣運算 | Python入門 | numpy |