4

给定numpy数组P(N),D(N,N),我想计算数组A(N):

A_i = SUM(P_i - P_j) where j is such that D[i][j] is True
A_i = 0 otherwise

所以,

A_i = N*P_i - (P_m + P_n+...) where D[i][m], D[i][n],... are all True

我可以使用双循环和 enumerate() 编写上述内容,但速度很慢。只是想知道如何用 numpy ufunc 来编写它。

4

1 回答 1

6

如果我正确理解了这个问题,这是一种方法。

A = P*D.sum(axis=1)-D.dot(P)
于 2013-07-23T04:18:33.367 回答