【问题标题】:How to perform tensor production in Python/numpy?如何在 Python/numpy 中执行张量生成?
【发布时间】:2016-09-25 15:46:50
【问题描述】:

我有两个 numpy 二维数组,我想执行此操作:

a_ij * b_ik = c_ijk

我怎样才能用 numpy 做到这一点?

【问题讨论】:

  • 由于您正在执行 elementwise multiplication 保持第一个轴公共,您可以简单地使用 broadcasting : a[...,None]*b[:,None,:]。请参阅here 了解相关说明。

标签: python numpy


【解决方案1】:

einsum 是为此任务量身定制的

a_ij * b_ik = c_ijk

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

====================

但正如 Divakar 所示,没有隐含的求和,所以简单的乘法同样有效,a[...,None]*b[:,None,:]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多