我正在寻找一种方法来避免以下代码段中的嵌套循环,其中A
和B
是二维数组,每个形状都(m, n)
带有m
,n
beeing 任意正整数:
import numpy as np
m, n = 5, 2
a = randint(0, 10, (m, n))
b = randint(0, 10, (m, n))
out = np.empty((n, n))
for i in range(n):
for j in range(n):
out[i, j] = np.sum(A[:, i] + B[:, j])
上面的逻辑大致等价于
np.einsum('ij,ik', A, B)
除了einsum
计算产品的总和。
有没有一种方法,相当于einsum
计算总和的总和?还是我必须为此操作编写扩展程序?