gpt4 book ai didi

python - 填充一维 numpy 数组的最快方法

转载 作者:太空狗 更新时间:2023-10-30 00:46:31 26 4
gpt4 key购买 nike

我见过类似的问题,但没有一个直接解决这个问题。我已经对以下两种填充数组的方式进行了计时,一半的时间使用 np.zeros() 更快,一半的时间直接这样做更快。有更好的方法吗?我对使用 numpy 数组还很陌生,并且已经参与了加速我的代码的目标,而不是过多地考虑可读性。

import numpy as np
import time

lis = range(100000)

timer = time.time()
list1 = np.array(lis)
print 'normal array creation', time.time() - timer, 'seconds'

timer = time.time()
list2 = np.zeros(len(lis))
list2.fill(lis)
print 'zero, fill - array creation', time.time() - timer, 'seconds'

谢谢

最佳答案

如果你有一个 float 列表 a=[x/10. for x in range(100000)],那么你可以创建一个数组:

np.array(a) # 9.92ms
np.fromiter(a, dtype=np.float) # 5.19ms

你的方法

list2 = np.zeros(len(lis))
list2.fill(lis)

不会按预期工作。 .fill 用一个值填充整个数组。

关于python - 填充一维 numpy 数组的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8355441/

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