【发布时间】:2014-02-05 19:26:05
【问题描述】:
我需要从[0, 3*10^9] 范围内选择3.7*10^8 唯一值,然后按顺序获取它们或将它们保存在内存中。
为此,我开始研究一种简单的算法,在该算法中我对较小的均匀分布(适合内存)进行采样,以便间接地对我真正感兴趣的大分布进行采样。
代码可在以下要点获得https://gist.github.com/legaultmarc/7290ac4bef4edb591d1e
由于我在实现更强大的东西时遇到了麻烦,我想知道您是否有其他想法来从大型离散制服中采样唯一值。我正在寻找关于如何直接管理非常大的列表(可能使用硬盘而不是内存)的算法、模块或想法。
【问题讨论】:
-
Numpy 是一个不错的选择。您可以将值直接放入 numpy 数组中,而不是先放入 Python 列表中。您真的需要硬盘驱动器还是有 3GB 内存?
标签: python memory sampling uniform