[英]multiplication of 3-dimensional matrix in numpy
我想我昨天問了一個錯誤的問題 。 我真正想要的是2x2xN
A
兩個2x2xN
矩陣A
和B
C[:,:,i] = dot(A[:,:,i], B[:,:,i])
例如,如果我有一個矩陣
A = np.arange(12).reshape(2, 2, 3)
如何通過上述定義得到C = A x A
? 是否有內置函數來執行此操作?
此外,如果我將A (shape 2x2xN)
與B (shape 2x2x1, instead of N)
,我想得到
C[:,:,i] = dot(A[:,:,i], B[:,:,1])
嘗試使用numpy.einsum
,它有一點學習曲線,但它應該給你你想要的。 這是一個讓你入門的例子。
import numpy as np
A = np.random.random((2, 2, 3))
B = np.random.random((2, 2, 3))
C1 = np.empty((2, 2, 3))
for i in range(3):
C1[:, :, i] = np.dot(A[:, :, i], B[:, :, i])
C2 = np.einsum('ijn,jkn->ikn', A, B)
np.allclose(C1, C2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.