gpt4 book ai didi

python - 将对象列表转换为 numpy 数组的更快方法

转载 作者:太空宇宙 更新时间:2023-11-04 03:33:43 24 4
gpt4 key购买 nike

我正在尝试通过使用 numpy 数组删除 for 循环和列表理解来优化我的代码。总的来说,现在代码的执行速度更快了,但是有一件事让我很困扰:将我的包含大约 110000 个元素的列表转换为 numpy 数组占用了程序运行时间的大部分时间(5 到 7 秒,只是为了初始化一个数组!)

我有这个

rec = np.array(records)

其中 records 是一个对象列表。

是否可以加快创建此 numpy 数组的速度?

最佳答案

如果您的列表是一维的,使用 np.fromiter() 比典型的 np.array() 更快。大小为 10000 的整数列表的基准:

a = [1,2,3,4,5,6,7,8,9,10]*1000

%timeit np.array(a,dtype=np.int32)
456 µs ± 7.16 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

%timeit np.fromiter(a,dtype=np.int32,count=10000)
242 µs ± 6.65 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

关于python - 将对象列表转换为 numpy 数组的更快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30012362/

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