工程开发
zarr-python avatar

zarr-python

用于存储分块 N 维阵列的高性能 Python 技能。支持云存储 (S3/GCS)、并行 I/O,并与 NumPy、Dask 及 Xarray 无缝集成,适用于大规模科学计算。

简介

Zarr Python 技能为 Python 中的大规模 N 维数据结构处理提供了优化接口。此技能专为科学计算、数据工程与机器学习流水线设计,通过高效的分块与压缩技术,能够创建并操作超出本地内存容量的数组。利用 Zarr,用户可以直接在云原生存储系统(如 Amazon S3 或 Google Cloud Storage)上执行并行 I/O 操作,对于处理海量地理空间、气候或观测数据的研究人员与工程师而言,这是一个至关重要的工具。

  • 实现与 PyData 生态系统的无缝互通性,特别是针对数值处理的 NumPy、并行分布式计算的 Dask,以及多维标记数据分析的 Xarray。

  • 支持高级分块策略,根据访问模式(如行优先或列优先数据检索)优化性能。

  • 提供强大的压缩选项,包括 Blosc(具有 Zstd 和 LZ4 等编解码器)、Gzip 和 Zstd,以平衡存储空间与读写速度。

  • 实现分片 (sharding) 功能,通过减少对象存储请求的开销,提升云端环境中管理数百万个小块时的性能。

  • 提供一致的 API 用于数组初始化、调整大小、沿轴追加数据,以及通过 vindex 和 oindex 进行基于坐标的索引。

  • 用户应定义块大小(目标约为每个块 1MB),以优化 I/O 性能与元数据处理。

  • 确保安装了相应的文件系统驱动程序,如 s3fs 或 gcsfs,以支持云原生工作流。

  • 写入前必须将整个分片加载到内存中,因此大规模分片数据集需谨慎规划。

  • 使用 Zarr 的 open() 函数进行存储结构的自动检测;支持多种压缩过滤器,允许在生产运行期间进行精确的性能调优。一般高交互性工作负载建议优先使用 Blosc。

仓库统计

Star 数
195
Fork 数
26
Open Issue 数
4
主要语言
Python
默认分支
main
同步状态
空闲
最近同步时间
2026年4月30日 10:39
在 GitHub 查看