ndarray条件选择的内存不足

时间:2016-05-12 09:02:12

标签: python numpy laspy

我已经读过python能够使用机器上可用的整个物理内存,因此在实际填满笔记本电脑的所有免费9 + GB之前,它不应该耗尽内存。

但是,使用laspy解析10M点云(200MB)并按以下方式选择点会产生内存不足错误:

inFile = File(sys.argv[1], mode = "r")
all_points = np.vstack([inFile.x, inFile.y, inFile.z, inFile.return_num, inFile.intensity]).transpose()
lower_points = all_points[ 1 > inFile.z ]
upper_points = all_points[ 1 <= inFile.z ]

最后一个条件选择会触发内存错误。实际上有2M点满足第一个条件,总共10M点,所以8M点应该满足第二个条件。

如果我将upper_points更改为普通列表(如:[])并且.append每个z大于1的点,它都可以正常工作。

8M点应该是大约200MB或更多,所以我真的不明白这个问题。 我错过了什么?

0 个答案:

没有答案