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