从规则网格制作二维 numpy 数组,无需过多内存使用

Make 2-D numpy arrays from regular grid without excess memory use

我用来可视化数据的许多绘图函数(plot_surfaceplot_wireframe、mayavi 的 contour3 等)都将二维数组作为参数 X, Y, Z ,以及函数的一些标量值。

我通常从格式为

的文件中获取信息
x   y   z   data
0   0   1    45
...

在规则的网格上。我有太多的值无法将 meshgrid 的输出保存在我的内存中,但我可以将完整的数据集保存为一个 Nx4 或四个 Nx1 数组。

有没有办法制作一个视图,或者将现有的网格化数据重组为与这些功能兼容的格式?

我意识到我可以使用 griddata 和插值来降低分辨率,这就是我目前的方法。

更新:

我正在处理的具体任务使用 mayavi 的 contour3 函数生成等值面图,但是多维化数组的方法应该是通用的。

您可以通过将 copy=False 传递给 meshgrid 来大大减少内存使用。这将在原始数组中创建视图,see the docs