[ SKILL_DOCUMENTATION ]
# Zarr Python 快速参考
本参考指南提供了开发过程中常用 Zarr 函数、参数及模式的简明概览,便于快速查阅。
## 数组创建函数
### `zarr.zeros()` / `zarr.ones()` / `zarr.empty()`
python
zarr.zeros(shape, chunks=None, dtype='f8', store=None, compressor='default',
fill_value=0, order='C', filters=None)
创建填充为零、一或空(未初始化)值的数组。
**关键参数:**
- `shape`: 定义数组维度的元组 (例如 `(1000, 1000)`)
- `chunks`: 定义分块维度的元组 (例如 `(100, 100)`),或 `None` 表示不分块
- `dtype`: NumPy 数据类型 (例如 `'f4'`, `'i8'`, `'bool'`)
- `store`: 存储位置 (字符串路径、Store 对象,或 `None` 表示内存)
- `compressor`: 压缩编解码器,或 `None` 表示不压缩
### `zarr.create_array()` / `zarr.create()`
python
zarr.create_array(store, shape, chunks, dtype='f8', compressor='default',
fill_value=0, order='C', filters=None, overwrite=False)
创建新数组,并显式控制所有参数。
### `zarr.array()`
python
zarr.array(data, chunks=None, dtype=None, compressor='default', store=None)
从现有数据 (NumPy 数组、列表等) 创建数组。
**示例:**
python
import numpy as np
data = np.random.random((1000, 1000))
z = zarr.array(data, chunks=(100, 100), store='data.zarr')
### `zarr.open_array()` / `zarr.open()`
python
zarr.open_array(store, mode='a', shape=None, chunks=None, dtype=None,
compressor='default', fill_value=0)
打开现有数组或创建新数组。
**模式选项:**
- `'r'`: 只读
- `'r+'`: 读写,文件必须存在
- `'a'`: 读写,不存在则创建 (默认)
- `'w'`: 创建新文件,存在则覆盖
- `'w-'`: 创建新文件,存在则失败
## 存储类
### LocalStore (默认)
python
from zarr.storage import LocalStore
store = LocalStore('path/to/data.zarr')
z = zarr.open_array(store=store, mode='w', shape=(1000, 1000), chunks=(100, 100))
### MemoryStore
python
from zarr.storage import MemoryStore
store = MemoryStore() # 数据仅在内存中
z = zarr.open_array(store=store, mode='w', shape=(1000, 1000), chunks=(100, 100))
### ZipStore
python
from zarr.storage import ZipStore
# 写入
store = ZipStore('data.zip', mode='w')
z = zarr.open_array(store=store, mode='w', shape=(1000, 1000), chunks=(100, 100))
z[:] = data
store.close() # 必须关闭
# 读取