是否会对大型numpy.array的较小块进行预先排序,从而更快地对整个阵列进行排序?

时间:2015-10-01 18:43:05

标签: python arrays sorting numpy

我正在排序一大堆值。数组大小为(1e9, 3)中的float16,即dtype='f2'中的numpy。因此,当它构建并坐在那里时,它需要大约6GB的内存。

然后我对这个大型数组进行排序,这个数组运行内存高达3-4倍,原因我不太了解。我用来对它进行排序的公式(它应该只从我可以收集的数据中生成一个数组的一个临时副本),如下所示:

arr = arr[arr[:,idx].argsort()]

这种方法有效并且不会将我的记忆炸毁到崩溃的程度,虽然它确实会泄漏到虚拟内存中(幸运的是我有16GB的内存)。

我的问题是:大数组实际上由22个较小的数组组成,这些数组在子函数中连接在一起。在构建大型数组并对其进行排序之前,是否可以从预先排序每个较小的数组中获得什么?

0 个答案:

没有答案