2014-10-08 85 views
-2

假設我有兩個二維數組,A和B.A的大小爲3x3和B 3x5。我想用B的第一行(大小爲1x5)來np.dot A的第一列(大小爲3x1),A的第二列與B的第二行等等。返回3x5 2d數組的2d數組列表以及所有結果如何在不使用Python循環的情況下完成此操作?Numpy將數組A的每列乘以數組B的對應行,不循環

我目前的解決方案是這樣的,這是理想的嗎? (a.T [:,:,np.newaxis])*(B [:,np.newaxis ,:])

回答

0

你不想計算的內積dot,但外積outer。因此,這裏是一個循環的解決方案:

[np.outer(A[:, i], B[i, :]) for i in range(A.shape[1])] 

這是正確的,還是你需要避免這種循環呢?它可能會相當複雜,因爲方便的功能outer總是使輸入陣列變平坦...

相關問題