def method_1(file_paths: List[Path], indices) -> List[np.array]:
data=[]
for file in file_paths:
d = Dataset(file, 'r')
data.append(d.variables['hrv'][indices])
d.close()
return data
def method_2(file_paths: List[Path], indices) -> List[np.array]:
data=[]
for file in file_paths:
data.append(xarray.open_dataset(file, engine='h5netcdf').hrv.values[indices])
return data
def method_3(file_paths: List[Path], indices) -> List[np.array]:
data=[]
for file in file_paths:
data.append(xarray.open_mfdataset([file], engine='h5netcdf').hrv.data.vindex[indices].compute())
return data
您可以访问底层
numpy
数组以直接为其编制索引:编辑:
假设您的数据位于
dask
支持的xarray
中,并且不想将所有数据加载到内存中,则需要在xarray
数据对象后面的dask
数组上使用vindex
:为了考虑速度,我用不同的方法进行了测试
结果是:
我猜xarray+dask在
.compute
步中花费了很多时间相关问题 更多 >
编程相关推荐