【问题标题】:Numpy multiplication of matrix and 3 dimensional array矩阵和 3 维数组的 Numpy 乘法
【发布时间】: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


【解决方案1】:

根据我从您的问题中了解到,您可以使用numpy.einsum

C = np.einsum('ij,jkl->ikl', W, A)

应该做的工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-10
    • 1970-01-01
    • 2019-04-07
    • 2014-06-27
    • 2013-05-06
    相关资源
    最近更新 更多