Python 加速xarray';菲尔纳酒店
我有一个相当大的netCDF文件(~10gb),它的填充值为-1.0 当我像这样使用xarray的fillna时:Python 加速xarray';菲尔纳酒店,python,performance,python-xarray,fillna,Python,Performance,Python Xarray,Fillna,我有一个相当大的netCDF文件(~10gb),它的填充值为-1.0 当我像这样使用xarray的fillna时: hndl_nc = hndl_nc.fillna(0.0) 速度很慢(~2分钟),是否有其他操作员速度更快?或者,考虑到文件的大小,这是预期的?速度约为85MB/s,这是矢量化NumPy/xarray操作的典型性能。我认为,仅仅使用另一个内置操作不太可能显著改善这一点 您仍然可以通过一些实验来提高性能。要做的第一件事是分析和查看CPU使用情况,以确定时间花在哪里 如果您在Pyt
hndl_nc = hndl_nc.fillna(0.0)
速度很慢(~2分钟),是否有其他操作员速度更快?或者,考虑到文件的大小,这是预期的?速度约为85MB/s,这是矢量化NumPy/xarray操作的典型性能。我认为,仅仅使用另一个内置操作不太可能显著改善这一点 您仍然可以通过一些实验来提高性能。要做的第一件事是分析和查看CPU使用情况,以确定时间花在哪里
- 如果您在Python中受CPU限制:如果尚未使用Dask,请尝试使用Dask并行化操作
- 如果您在netCDF/HDF5进程中受到CPU的限制:这可能是netCDF4文件具有文件内zlib压缩(这相当慢)的症状。可以提前将数据加载到内存中(使用
),在不压缩的情况下重写文件,或者尝试使用xarray v0.9.0或更高版本(当前在候选版本中)进行Dask分布式或多处理.load()
- 如果您受到IO约束,请考虑:
- 如果您有netCDF3文件,
可以更快engine='scipy'
- 切换到
/scale\u factor
压缩add\u offset
中的数据,而不是更大的浮点类型int16
- 如果您有netCDF3文件,