簡體   English   中英

將兩個2D numpy數組乘以3D數組

[英]Multiplying two 2D numpy arrays to a 3D array

我有兩個名為AB 2D numpy數組,其中AM x NBM 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM