python - Numpy 与时间相关的二维矩阵乘法

标签 python numpy matrix multiplication

我正在寻找一种有效的方法来执行两个与时间相关的二维矩阵的矩阵乘法(点积),以最终得到一个与时间相关的二维矩阵。

例如:

a = np.zeros([7200,13,4])
b = np.zeros([7200,4,7])

我想最终得到

c = np.zeros([7200,13,7])

我已经找到了 np.tensordot,但是这给我带来了 4D 矩阵而不是 3D 矩阵。另外其他 numpy 函数也没有给我带来所需的形状。所以我想知道是否有任何方法可以在不使用 for 循环的情况下执行此矩阵乘法?

最诚挚的问候,

蒂莫西·范戴尔

最佳答案

我只是深入挖掘了一点,发现了 numpy 函数 einsum。这为进行向量乘法提供了很大的自由度。

a = np.zeros([7200,13,4])
b = np.zeros([7200,4,7])

c = np.einsum('ijk,ikl->ijl',a,b) 
c.shape (7200, 13, 7)

关于python - Numpy 与时间相关的二维矩阵乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23674293/

相关文章:

python - XGBClassifier 很慢,尽管传递了详细参数,但不打印任何输出

r - 组合对的相关性

python - 如何使用 python numpy 将多个矩阵的函数应用于矩阵列表的每个元素?

python - 我应该使用 `random.seed` 还是 `numpy.random.seed` 来控制 `scikit-learn` 中的随机数生成?

python - 向量化连续 numpy 计算

python - 如何 reshape 具有不同维度的 3d 数组?

r - 求和或矩阵乘法更快吗?

python - 完全独立的虚拟环境

python - InternetCrackUrlW 不会填充结构化类中指针后面的字符串值

python - 如何 bundle 含依赖项的 Python 应用程序?