python - 拆分数组时减少内存使用的最佳实践

标签 python arrays memory numpy

我有一个数组,我想分成两半。由于对称性,我只对保留数组的左半部分感兴趣。

我可以通过以下语句将数组分成两半:

[a,b] = numpy.split(c,2)

其中 c 也是一个数组。

有没有办法只返回 'a' 数组,或者在拆分数组后立即从内存中删除 'b' 数组?

最佳答案

你可以复制前半部分

a = x[len(x)//2:].copy()

这将需要分配副本并移动内容(因此暂时需要1.5倍的内存)

否则你只能说

a = x[len(x)//2:]

获取前半部分的引用,但后半部分不会从内存中移除

关于python - 拆分数组时减少内存使用的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25709931/

相关文章:

python - 如何在python中找到中间的数字

python - 我在哪里可以获得 Python 2.7 中的 restful_lib 模块以及如何安装该模块

javascript - 如何在两个对象数组之间创建每种可能的组合?

C 数组的数组 : why do I need to cast TO const here?

python - 内存数据库 : no indexes, 中的 SQLite 加载到索引表中或加载后构建索引哪个更快?

C++ 析构函数 - 继承上下文中的显式调用

python - 使用 int 列表的稀疏矩阵切片

python - xlwings 是否仅适用于 Excel 的第一个实例?

arrays - 将条件 bool 表达式或函数本身更改为正常的相等表达式

c++ - 关于循环变量优化的标准合规行为是什么?