我即将第一次尝试 Pytables,我需要按时间步长将数据写入 hdf 文件。我将有超过 100,000 个时间步长。完成后,我想按第 2 列对我的 100,000+ x 6 数组进行排序,即,我目前已按时间对所有内容进行排序,但现在我需要按降水率(第 2 列)的顺序对数组进行排序。我不确定如何从这里开始。我知道将整个数组放在内存中是不明智的。任何想法如何快速有效地做到这一点?
感谢任何建议。
最佳答案
I know that having the entire array in memory is unwise.
你可能想多了。一个 100K x 6 的 float64
数组只需要大约 5MB 的内存。在我的电脑上,对这样的数组进行排序大约需要 27 毫秒:
In [37]: a = np.random.rand(100000, 6)
In [38]: %timeit a[a[:,1].argsort()]
10 loops, best of 3: 27.2 ms per loop
关于numpy - 对非常大的一维数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14438509/