将2个数组列表与匹配索引相乘

时间:2020-08-06 12:09:35

标签: python numpy

给出2个数组列表(或2个3D数组),在numpy中,除了循环外,还有一种更聪明的方法来获取第一个列表的第一个数组与第二个列表的第一个数组的乘积,依此类推吗?我有一种感觉,我忽略了显而易见的事情。这是我当前的实现:

import numpy as np

r = []

for i in range(np.shape(rz)[2]):
    r.append(ry[..., i] @ rz[..., i])
r = np.array(r)

2 个答案:

答案 0 :(得分:1)

假设最后一个维度相同,numpy.einsum应该可以解决问题:

import numpy as np

np.einsum('ijk,jmk-> imk', ry, rz)

答案 1 :(得分:0)

import numpy as np

A = np.array([[3, 6, 7], [5, -3, 0]])

B = np.array([[1, 1], [2, 1], [3, -3]])

C = A.dot(B)

print(C)

输出:

[[36 -12] [-1 2]]