xxx*_*222 4 python performance numpy scipy
有什么办法可以改进我下面附带的Python代码吗?现在对我来说似乎太慢了.
C_abs = abs(C)
_, n = C_abs.shape
G = np.zeros((n, n))
for i in xrange(n):
for j in xrange(n):
G[i,j] = C_abs[i,j]+C_abs[j,i]
Run Code Online (Sandbox Code Playgroud)
只需添加C_abs与它transposed version-
G = C_abs + C_abs.T
Run Code Online (Sandbox Code Playgroud)
要理解,请查看代码的计算部分:
G[i,j] = C_abs[i,j]+C_abs[j,i]
Run Code Online (Sandbox Code Playgroud)
右侧的第一个输入是C_abs[i,j],它具有与赋值左侧相同的迭代器 - G[i,j].因此,对于矢量化解决方案,我们将使用它而不作为第一个输入.右侧的第二个输入是C_abs[j,i],它的迭代器是左侧迭代器的翻转版本 - G[i,j].这种在整个数组上下文中的翻转将是转置C_abs.因此,放在一起,我们将添加C_abs自己的转置版本,以矢量化的方式获得所需的输出.
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |