用途:zarr-python 用于存储大规模 N 维数组,通过分块与压缩实现高效并行 I/O 和云原生工作流,适合科学计算场景。
主要能力:支持创建、打开、读写、调整大小和追加数组,提供 NumPy 风格索引及 vindex、oindex、blocks 等高级索引;支持分块策略与 sharding;可按块压缩,内置 Blosc、Gzip、Zstd 等编解码器;支持本地文件系统、内存、ZIP、S3、GCS 等存储后端;支持组与层级结构、h5py 兼容 API、JSON 属性元数据;可与 NumPy、Dask、Xarray 集成,支持线程/进程同步与合并元数据。
使用方式:安装可执行 pip install zarr 或 conda install --channel conda-forge zarr,要求 Python 3.11+;云存储需额外安装 s3fs 或 gcsfs。基本用法为 zarr.create_array 创建数组,用 NumPy 风格索引读写;也可用 zarr.zeros、zarr.ones、zarr.full、zarr.array 等创建,用 zarr.open_array 或 zarr.open 打开。
适用场景:大规模科学数据、时间序列、矩阵运算、云原生数据存储,以及需要与 Dask/Xarray 配合的并行计算。
限制:分块大小与形状显著影响性能,需按访问模式选择;整个分块或 shard 在压缩/写入时须能放入内存;合并元数据可能过期,不适合频繁更新或多写入者场景;并发写入跨分块边界时需要同步;属性必须可 JSON 序列化。部分高级配置与具体性能数据暂未提供。