我有以下代码:
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的内存将很快被垃圾收集,但我想以更高性能的方式实现它,因为N,m,n在我的用例中可能很大。
b
N
m
n
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])
1条答案
按热度按时间jrcvhitl1#
您需要首先强制取消分配
b
: