我有一个程序需要将许多大型的一维numpy浮点数数组转换为分隔符字符串。相对于我的程序中的数学运算,我发现这个操作非常慢,想知道是否有方法可以加速它。例如,考虑以下循环,它将取100,000个随机数字的numpy数组,并将每个数组连接成逗号分隔的字符串。
import numpy as np
x = np.random.randn(100000)
for i in range(100):
",".join(map(str, x))
这个循环需要约20秒才能完成(总时间,不是每个周期)。相比之下,考虑到100个元素的乘法运算(x*x)只需要不到1/10秒的时间。显然,字符串连接操作会导致性能瓶颈;在我的实际应用中,它将主导总运行时间。这让我想知道,是否有比",".join(map(str, x))更快的方法?由于map()几乎占据了所有的处理时间,所以问题转化为是否存在更快的方法将大量数字转换为字符串。
float.hex
比str
快 25%。它可以使用"%a"
格式在其他语言中读取回来。 - jfs