【问题标题】:Numpy dot product on specific dimension特定维度上的 Numpy 点积
【发布时间】:2021-04-21 18:08:24
【问题描述】:

我有一个形状为(x, y) 的numpy 数组a 和另一个形状为(x, z) 的数组b

我正在尝试获取ab 的每一行(维度x)之间的点积。期望的结果:x 形状矩阵的数量(x, y) 或形状矩阵(x, y, z)

【问题讨论】:

  • 您确定要dot吗?你在哪个轴上求和?结果维度看起来更像是一个外部产品。 a[:,:,None] * b[:,None,:]
  • matmul 也可以通过为sum-of-productsa[:,:,None]@b[:,None,:] 添加大小为 1 的维度来处理此问题

标签: python numpy dot-product


【解决方案1】:

只需使用 einsum -

import numpy as np

a = np.random.rand(10, 20)
b = np.random.rand(10, 30)

c = np.einsum('ij,ik->ijk', a, b)

print(c.shape)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-16
    • 2021-06-14
    • 1970-01-01
    • 2017-08-27
    • 2021-03-27
    • 2020-07-26
    • 1970-01-01
    • 2016-04-02
    相关资源
    最近更新 更多