使用大数字的numpy.arange时出现内存错误。我的代码如下:
import numpy as np
list = np.arange(0, 10**15, 10**3)
profit_list = []
for diff in list:
x = do_some_calculation
profit_list.append(x)
什么可以替代,以便我可以避免出现内存错误?
答案 0 :(得分:1)
如果用生成器替换list
¹,就是你做
for diff in range(10**15, 10**3):
x = do_some_calculation
profit_list.append(x)
然后,由于您不再启动完整列表,因此将不再导致MemoryError
。但是,在这个世界中,profit_list
可能会引发问题,因为您尝试添加10 ^ 12个项目。同样,您可以通过不显式存储值来解决这个问题,而是使用生成器根据需要生成它们。
¹:旁注:不要将list
用作变量名,因为它会影响内置。