有没有办法让numpy释放数组使用的内存?我不能只运行int currentapiVersion = android.os.Build.VERSION.SDK_INT;
if (currentapiVersion >= android.os.Build.VERSION_CODES.LOLLIPOP){
// Do something for lollipop and above versions
} else{
// do something for phones running an SDK before lollipop
}
,因为数组在别处被引用。
为什么这很重要以及我认为这是安全的原因的例子:
del array
我可以修改def run():
arr = np.array(....)
arr2 = process(arr)
fit(arr2)
但不能编辑process
。现在run
占用了arr
运行后不再需要的大量内存。我创建process
后,我想从arr
内删除process
中的内容。
答案 0 :(得分:1)
您可以尝试将数组的大小调整为一个小数组:
arr.resize((2,), refcheck=False)
它就地更改了数组:
a.resize(new_shape,refcheck = True)
就地更改阵列的形状和大小。
...
备注
如有必要,这将为数据区重新分配空间。
只有连续的数组(内存中连续的数据元素)才可以 调整大小。
参考计数检查的目的是确保您 不要将此数组用作另一个Python对象的缓冲区 重新分配内存。但是,引用计数可以增加 其他方式,如果你确定你没有共享内存 对于具有另一个Python对象的此数组,您可以安全地设置
refcheck
为假。