【发布时间】:2015-02-10 18:26:13
【问题描述】:
我正在运行一些运行速度太慢的模拟,因此我分析了我的代码,发现超过 90% 的时间都花在了将(2D)numpy 数组转换为字符串上,如下所示:
arr = np.ones(25000).reshape(5000,5)
s = '\n'.join('\t'.join([str(x) for x in row]) for row in arr]
我尝试了一堆不同的解决方案(使用 map、使用 astype(str) 转换数组、转换为列表),但大多数都只得到了边际改进。
最终我放弃了尝试将数组转换为字符串并使用 np.save(arr) 将其保存到自己的文件中,这给出了 2000x(! ) 加速。有没有办法将数组写入具有相似性能的文本文件?
【问题讨论】: