我有一系列需要在 Python 中分析的实验输出的大型文本文件(最多 1 gig)。最好将它们加载到 2D numpy 数组中,这提出了第一个问题:
- 由于在加载开始时行数是未知的,如何才能最有效地逐行构建一个非常大的 numpy 数组?
简单地将行添加到数组中在内存方面效率低下,因为两个大数组会暂时共存。如果您使用numpy.append
. 这些stack
功能很有希望,但理想情况下,我希望将阵列扩大到位。
这就引出了第二个问题:
- 观察大量使用 numpy 数组的 Python 程序的内存使用情况的最佳方法是什么?
为了研究上述问题,我使用了常用的内存分析工具——heapy 和 pymler——但我只获得了外部数组对象的大小(80 字节),而不是它们包含的数据。除了粗略地测量 Python 进程正在使用多少内存之外,随着数组的增长,我如何才能获得数组的“完整”大小?
本地详细信息:OSX 10.6、Python 2.6,但欢迎使用通用解决方案。