给出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)
答案 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]]