繁体   English   中英

如何提高这个Python代码的性能?

[英]How to improve the performance of this Python code?

有什么方法可以改进我下面附带的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]

只需添加C_abs及其transposed version -

G = C_abs + C_abs.T

要理解,请查看代码的计算部分:

G[i,j] = C_abs[i,j]+C_abs[j,i]

右侧的第一个输入是C_abs[i,j] ,它具有与赋值左侧相同的迭代器 - G[i,j] 因此,对于矢量化解决方案,我们将使用它而不作为第一个输入。 右侧的第二个输入是C_abs[j,i] ,它的迭代器是左侧迭代器的翻转版本 - G[i,j] 这种在整个数组上下文中的翻转将是C_abs的转置。 因此,放在一起,我们将添加具有自己的转置版本的C_abs ,以矢量化方式获得所需的输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM