alterlab-zarr — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited alterlab-zarr (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Zarr is a Python library for storing large N-dimensional arrays with chunking and compression. Apply this skill for efficient parallel I/O, cloud-native workflows, and seamless integration with NumPy, Dask, and Xarray. The guidance targets zarr-python 3.x (current 3.4.0), which writes the Zarr v3 format by default.
Use this skill when the user wants to:
zarr.create_array, groups, attributes).compressor=, synchronizer=, create_dataset) to v3.| Scenario | Use Instead |
|---|---|
| Parallel or distributed computation over arrays already stored in Zarr (scheduling, out-of-core math) | alterlab-dask |
| Exploring an unknown data file and writing a structure/quality report | alterlab-eda |
Single-cell AnnData objects stored as .h5ad or AnnData-on-zarr | alterlab-anndata |
| Tabular analytics on large CSV/Parquet files | alterlab-polars |
uv pip install zarrZarr v3 (zarr>=3); zarr 3.2+ requires Python 3.12+ and NumPy 2 (the 3.1.x line still supports Python 3.11). For cloud storage support, install the matching fsspec backend:
uv pip install s3fs # For S3
uv pip install gcsfs # For Google Cloud Storageimport zarr
import numpy as np
# Create a 2D array with chunking and compression
z = zarr.create_array(
store="data/my_array.zarr",
shape=(10000, 10000),
chunks=(1000, 1000),
dtype="f4"
)
# Write data using NumPy-style indexing
z[:, :] = np.random.random((10000, 10000))
# Read data
data = z[0:100, 0:100] # Returns NumPy arraycompressors= based on workload — Zstandard (the default), Blosc+LZ4 (fast), Gzip (max ratio); compressors=None to disable. Pass Blosc options as strings (shuffle="shuffle", cname="zstd"); the BloscShuffle/BloscCname enums are deprecated since 3.1.# Minimal end-to-end
import zarr, numpy as np
z = zarr.create_array(store="data/my_array.zarr", shape=(10000, 10000),
chunks=(1000, 1000), dtype="f4")
z[:, :] = np.random.random((10000, 10000))
sub = z[0:100, 0:100] # returns a NumPy array| You need… | Go to |
|---|---|
| Array create/open, read/write, resize/append, attributes, groups & hierarchies, consolidated metadata | references/array_operations.md |
| Chunk-size guidelines, aligning chunks to access patterns, sharding, compression codecs & tips | references/chunking_compression.md |
| Local / in-memory / ZIP / S3 / GCS stores and cloud best practices | references/storage_backends.md |
| NumPy / Dask / Xarray integration, thread- and process-safe parallel writes | references/integration.md |
| Performance checklist, profiling, common patterns (time series, large matrices, cloud-native, format conversion), troubleshooting | references/patterns_performance.md |
| Full API surface | references/api_reference.md |
Part of the AlterLab Academic Skills suite.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.