我有这样的代码:
x = 0
for i in range(100):
for j in range(100):
x += f[i, 0] * f[0, j]
这里 f
是一个二维数组。现在,numpy 中是否有一个函数可以用来在不使用 for 循环的情况下执行此操作?
最佳答案
您可以分别对第一列和第一行求和,然后取积:
res = f[:, 0].sum() * f[0, :].sum()
这里有一些代码可以检查是否满足您的期望:
np.random.seed(0)
f = np.random.random((100, 100))
x = 0
for i in range(100):
for j in range(100):
x += f[i, 0] * f[0,j]
res = f[:, 0].sum() * f[0, :].sum()
assert np.isclose(x, res)
关于python - 使用 Numpy 进行矩阵运算的更简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53918387/