创建numpy数组重用其他数组的内存

yws3nbqq  于 2023-05-22  发布在  其他
关注(0)|答案(1)|浏览(94)

我有以下代码:

a = np.zeros(N)
b = np.tile(a, [m, n])

....

a[4] = 5 # just changing some values inside a
b = np.tile(a, [m, n])

b的第二次赋值中,是否可以在此过程中覆盖b的先前内存,而不是创建一个新数组,然后赋值给b?我知道以前的b的内存将很快被垃圾收集,但我想以更高性能的方式实现它,因为Nmn在我的用例中可能很大。

jrcvhitl

jrcvhitl1#

您需要首先强制取消分配b

a = np.zeros(N)
b = np.tile(a, [m, n])

....

a[4] = 5 # just changing some values inside a
import gc #import garbage collect interface
del b
gc.collect() #makes sure the memory referenced by b is freed if still not done
b = np.tile(a, [m, n])

相关问题