我有m
个n
矩阵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循环,最简单的方法是什么?
答案 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