我有一个数组,我想分成两半。由于对称性,我只对保留数组的左半部分感兴趣。
我可以通过以下语句将数组分成两半:
[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/