从规则网格制作二维 numpy 数组,无需过多内存使用
Make 2-D numpy arrays from regular grid without excess memory use
我用来可视化数据的许多绘图函数(plot_surface
、plot_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
我用来可视化数据的许多绘图函数(plot_surface
、plot_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