gpt4 book ai didi

python - 从 1d numpy 数组生成分隔字符串的最快方法

转载 作者:IT老高 更新时间:2023-10-28 20:26:54 24 4
gpt4 key购买 nike

我有一个程序需要将许多大型一维 numpy float 组转换为分隔字符串。我发现这个操作相对于我程序中的数学运算非常慢,我想知道是否有办法加快它。例如,考虑以下循环,它在一个 numpy 数组中获取 100,000 个随机数,并将每个数组连接成一个逗号分隔的字符串。

import numpy as np
x = np.random.randn(100000)
for i in range(100):
",".join(map(str, x))

此循环大约需要 20 秒才能完成(总计,不是每个循环)。相比之下,考虑像元素乘法 (x*x) 这样的 100 个循环将花费不到 1/10 秒的时间来完成。显然,字符串连接操作会造成很大的性能瓶颈;在我的实际应用程序中,它将主导总运行时间。这让我想知道,有没有比 ",".join(map(str, x)) 更快的方法?由于 map() 是几乎所有处理时间发生的地方,这归结为是否有更快的方法将大量数字转换为字符串。

最佳答案

有点晚了,但这对我来说更快:

#generate an array with strings
x_arrstr = np.char.mod('%f', x)
#combine to a string
x_str = ",".join(x_arrstr)

在我的机器上加速大约 1.5 倍

关于python - 从 1d numpy 数组生成分隔字符串的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2721521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com