gpt4 book ai didi

python - numpy.copy 数组的内存问题

转载 作者:行者123 更新时间:2023-11-30 22:25:18 29 4
gpt4 key购买 nike

我有一个大的 numpy 数组 my_array,我将其复制到另一个临时数组 temp_my_array 中,以便在循环内的计算中使用它,如下所示:

my_array = [10.1, 20.3, ..., 11.2] # a large numpy array
temp_my_array = np.copy(my_array)

for i in range(200000):
for item in np.where(my_array> 5):
temp_my_array[item] = f(my_array[some other items])
my_array = np.copy(temp_my_array)

my_array 太大时,np.copy 出现内存错误。此外,分析显示 np.copy 是我的代码中最慢的部分。请问有什么想法吗?

最佳答案

我建议您只复制实际更改的值。对于您的代码来说,这只是一个微小的变化:

my_array = [10.1, 20.3, ..., 11.2] # a large numpy array
temp_my_array = np.copy(my_array)

for i in range(200000):
inds = np.where(my_array > 5)
for item in inds:
temp_my_array[item] = f(my_array[some other items])
my_array[inds] = temp_my_array[inds]

否则,您可以对函数进行矢量化,但如果[一些其他项目]依赖于您当前的索引,这可能会很烦人,或者如果它依赖于先前的my_array结果,则不可能.

关于python - numpy.copy 数组的内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47569461/

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