【发布时间】:2017-04-20 22:09:59
【问题描述】:
我有一个 2d numpy 矩阵,想计算以下测试统计量。
我有蛮力代码可以做到这一点,但似乎应该有一个更通用的 numpy 解决方案适用于任何二维矩阵,使用像 np.diag() 这样的东西。不过我想不通。
def bruteforce(m):
s = 0.0
for (i,j) in itertools.product(range(0,m.shape[0]),range(0,m.shape[0])):
if i<j:
n = (m[i,j]-m[j,i])**2
d = m[i,j]+m[j,i]
if float(d) != 0.:
s = s+(float(n)/float(d))
else:
return('NA')
return(s)
在这种情况下,m 是一个 NxN 整数矩阵。有没有办法在 numpy 中进行矢量化,避免这样的蛮力循环?
【问题讨论】:
标签: python-3.x numpy matrix