【发布时间】:2017-03-03 01:32:44
【问题描述】:
我有一个大小为 Nx3 的大型二维数组。该数组包含 (X,Y,Z) 格式的点云数据。我在虚拟环境中使用 Ubuntu 中的 Python 从 .ply 文件中读取数据。
当我试图找到这个数组的协方差时 rowvar 设置为 True (意味着每一行都被视为一个变量),我得到 MemoryError.
我知道这会创建一个非常大的数组,显然对于我分配的 8 Gb 内存来说太大而无法处理。在不增加内存分配的情况下,是否有解决此问题的不同方法?是否有不同的计算协方差矩阵元素的方法,以免内存过载?
【问题讨论】:
-
N的值是多少? -
N的值可以大到23000。
-
请发布您的代码。根据我的经验,8Gb 应该足够了
-
结果将需要大约 4 Gb 的内存。在计算协方差矩阵之前,你能检查一下实际上有多少内存可用吗?另外,计算完 23000x23000 矩阵后,你打算如何处理它?
-
您希望结果是什么形状? 3x3 还是 NxN?
标签: python arrays numpy covariance point-clouds