[英]Multiplying two 2D numpy arrays to a 3D array
我有兩個名為A
和B
2D numpy
數組,其中A
是M x N
, B
是M xn
。 我的問題是我希望將每行 B
每個元素與A
相應行相乘,並創建一個大小為M xnx N
的3D矩陣C
,而不使用for
-loops。
例如,如果A
是:
A = np.array([[1, 2, 3],
[4, 5, 6]])
而B
是
B = np.array([[1, 2],
[3, 4]])
然后得到的乘法C = A x B
看起來像
C = [
[[1, 2],
[12, 16]],
[[2, 4],
[15, 20]],
[[3, 6],
[18, 24]]
]
是否清楚我想要實現的目標,是否可以在沒有任何for
-loops的情況下for
? 最好的,tingis
C=np.einsum('ij,ik->jik',A,B)
可以通過在每個數組中創建一個新軸並轉置修改后的A
:
A[np.newaxis,...].T * B[np.newaxis,...]
贈送:
array([[[ 1, 2],
[12, 16]],
[[ 2, 4],
[15, 20]],
[[ 3, 6],
[18, 24]]])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.