我有这样的问题,我有一段关于python2.7的代码。对于对象中的项目略多于70000个的对象,它的工作时间约为60秒。它是如何工作的?它获取一个具有指向另一个对象的路径的对象,并将它们转换为ASCII字符串。我想问题是为什么它这么慢。你知道吗
def createPath(self, path, NameOfFile ):
temp = []
for j in range( path.shape[0] ):
rr = path[j][0]
obj = NameOfFile[rr]
string = ''.join(chr(i) for i in obj[:])
string = string.replace("aaaa","bbbb")
temp.append(string)
return ( np.array(temp) )
这不是我自己的代码,我在网上找到的,所以我的问题是什么?如何使这段代码更快?我在python方面没有丰富的经验,但也许有一些有用的库或技巧可以帮助我。我感谢所有的帮助,任何想法都可能有用。你知道吗
使用@DanD使用的相同想法,但试图避免for循环:
解释器开销应该会减少,虽然我没有办法检查性能,但实际上,我甚至不确定
for obj in path
在这种情况下是否有效。你知道吗应用环吊可以提高性能。假设
NameOfFile
是一个列表(如果它是dict,则情况类似),并且NameOfFile
中的所有条目都将被访问,NameOfFile
的长度大部分时间小于path.shape[0]
,因此我们可以对它们计算一次转换:相关问题 更多 >
编程相关推荐