计算numpy数组中的和

时间:2018-05-06 08:25:03

标签: python numpy

我有mn矩阵A,实现为numpy数组。

import numpy as np
m = 10
n = 7
A = np.random.rand(m, n)

我想计算m m矩阵B,其条目为

B[i, j] = sum_{k=1,...,n} sum_{l=1,...,n} A[i, k] * A[j, l]

如果没有明确的for循环,最简单的方法是什么?

1 个答案:

答案 0 :(得分:2)

请注意,表达式中k的总和仅影响第一个因子,而l之和仅涉及第二个因素:

sum_{k=1,...,n} sum_{l=1,...,n} A[i, k] * A[j, l] =
    (sum_{k=1,...,n}  A[i, k]) * (sum_{l=1,...,n} A[j, l])

除了索引的名称外,括号中的表达式是相同的,因此定义

sA = np.sum(A, axis=1)

然后您的B就是sA B = np.outer(sA, sA) 所谓的ModelViewSet

perform_update