這似乎應該是一個簡單的操作,但對于我的生活,我無法弄清楚。我有兩個形狀不兼容的陣列,不能一起廣播。
A1.shape == (2, 10, 10)
A2.shape == (2, 300)
我想沿第一個維度添加兩個陣列,以便結果是一個具有形狀的陣列:
Result.shape == (2, 10, 10, 300)
換句話說:
Result[0, 2, 3, 122] == A1[0, 2, 3] A2[0, 122]
Result[1, 2, 3, 122] == A1[1, 2, 3] A2[1, 122]
我可以在不使用回圈的情況下進行矢量化嗎?
uj5u.com熱心網友回復:
要讓 numpy 進行廣播,您應該插入新的軸進行廣播。(Heisenbugs 在評論中指出了這一點)
Result = A1[:,:,:,np.newaxis] A2[:,np.newaxis,np.newaxis,:]
請注意np.newaxis is None,所以你可以寫None如果你喜歡。但我認為np.newaxis更具可讀性。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/485067.html
