【发布时间】:2020-11-25 18:49:58
【问题描述】:
我正在尝试将 k 乘以 k 矩阵,比如说,
W=np.array([[W_11,...,W_1k],...,[W_k1,...W_kk]])
(其中 W_ij 是数字) 和一个 (k,m,m) 多维数组,比方说,
A=np.array([A_1,...,A_k])
其中 A_i 是 m × m 矩阵。
如果
A_i=[a_i]
a_i 是数字,然后是 numpy.dot
C=np.dot(W,A) 只产生法线矩阵向量乘积,即 C 具有形状 (k,1) 并且一个具有该形状
C[i]=np.array([W_i1a_1+W_i2a_2+...W_ik*a_k])
我想知道的是,将 W 和 A 相乘的最佳方法是什么,现在 A 不一定是向量,即 A_i 是 m 乘 m 矩阵,其方式类似于 A_i=[ a_i],即我希望 C=np.dot(W,A) 具有形状 (k,m,m) 并且 C[i] 应该是 m x m 矩阵
W_i1A_1+...W_ikA_k
当然我可以通过循环来做到这一点,但我正在寻找一种有效的解决方案。
【问题讨论】:
-
查看 np.einsum
标签: python numpy matrix-multiplication numpy-ndarray