为了账号安全,请及时绑定邮箱和手机立即绑定

将 Numpy 数组中的所有行相乘

将 Numpy 数组中的所有行相乘

慕雪6442864 2021-11-16 16:51:21
我有一个 MxN Numpy 数组。我想取数组的每一行并将其逐元素乘以数组的每一行,从而产生一个 MxMxN numpy 数组。le_input = np.array([    [0, 0, 1],    [0, 1, 0]])le_expected_output = np.array([    [        [0, 0, 1],        [0, 0, 0]    ],    [        [0, 0, 0],        [0, 1, 0]    ]])我当然可以用 for 循环来做到这一点,我已经尝试过了,但我假设在 Numpy 中有一种更快的方法来做到这一点。有没有人有任何想法?
查看完整描述

1 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

您可以使用np.einsum:


np.einsum('ik,jk->ijk', le_input, le_input)

# array([[[0, 0, 1],

#         [0, 0, 0]],

#        [[0, 0, 0],

#         [0, 1, 0]]])

或者创建一个新轴并使用数组的广播属性来计算第一维上的外积:


le_input[:,None] * le_input

# array([[[0, 0, 1],

#         [0, 0, 0]],

#        [[0, 0, 0],

#         [0, 1, 0]]])


查看完整回答
反对 回复 2021-11-16
  • 1 回答
  • 0 关注
  • 191 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信