zarr-python
Ajuda seu agente a armazenar e consultar grandes conjuntos de dados científicos. É útil para organizar informações e garantir o acesso rápido.
O que ela faz
Zarr-Python é uma ferramenta para organizar e acessar grandes conjuntos de dados científicos em pedaços (chunks). Ele permite que você trabalhe com dados que não cabem inteiramente na memória, salvando-os de forma eficiente e permitindo a leitura apenas das partes necessárias.
Quando usar
- ✓Quando você tem dados científicos muito grandes para caber na memória.
- ✓Para ler ou escrever partes específicas de um conjunto de dados sem carregar tudo.
- ✓Para armazenar dados em nuvem como Amazon S3 ou Google Cloud Storage.
Exemplo do que pedir para a IA
“Como posso salvar um array NumPy gigante em pedaços e ler apenas uma pequena seção dele?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ele divide seus dados em blocos menores (chunks) e pode usar compressão. Isso permite que você acesse apenas os blocos de dados que precisa, economizando tempo e memória.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add K-Dense-AI/scientific-agent-skills --skill zarr-pythonOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/K-Dense-AI/scientific-agent-skills/main/skills/zarr-python/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Zarr Python
Quando usar
Use para arrays científicos fragmentados (chunked), armazenamentos hierárquicos, codecs, sharding, leituras parciais,
armazenamento de objetos na nuvem e interoperabilidade com NumPy/Dask/Xarray. Este guia comunitário é voltado para
Zarr-Python 3.4.0, lançado em 2026-09-15, com Python 3.12+. A versão do pacote e o
formato no disco são separados: esta versão lê/escreve os formatos 2 e 3; novos arrays usam o formato 3 por padrão. Mantenha pacotes dependentes que exigem zarr<3 em seus próprios ambientes.
Instalar
uv pip install "zarr==3.4.0" "numpy==2.5.3"
# Optional remote backends and migration CLI:
uv pip install "zarr[remote,cli]==3.4.0" "fsspec==2026.9.0" "s3fs==2026.9.0" "gcsfs==2026.8.1"
Confirme o arquivo de lock resolvido do projeto. Versões de integração opcionais exercitadas aqui: Dask 2026.8.0, Xarray 2026.9.0, h5py 3.16.0, NumCodecs 0.17.0, obstore 0.11.1. Exemplos locais abaixo e nas referências usam arrays sintéticos pequenos; trechos remotos são ilustrativos e requerem um armazenamento autorizado real. Isso não estabelece permissões de nuvem, taxa de transferência de produção ou compatibilidade de todos os leitores dependentes.
Fluxo de trabalho
- Inspecione forma (shape), tipo de dado (dtype), nomes de eixos, coordenadas, unidades, convenção de valor ausente, formato, disponibilidade de codec e leitores pretendidos. Preserve IDs de amostra e ordem dos eixos.
- Escolha fragmentos (chunks) para seleções reais e um orçamento de memória. Para sharding, escolha dimensões de shard que sejam múltiplos das dimensões dos fragmentos. Faça benchmark de dados representativos.
- Crie um novo destino (
overwrite=Falseoumode="w-"). Usemode="r"para inspeção;"a"pode criar um armazenamento ausente e"w"destrói o conteúdo existente. - Escreva blocos delimitados. Atribua um escritor por fragmento armazenado, ou por shard quando fragmentado (sharded); serialize metadados, anexe e redimensione operações.
- Reabra em modo somente leitura e compare valores, dtype, shape, coordenadas, unidades, máscaras e
metadados. Um fragmento não escrito ou ausente normalmente é lido como
fill_value; uma abertura bem-sucedida sozinha não prova a completude dos dados. - Para uma hierarquia de grupo concluída, opcionalmente consolide metadados. A consolidação do formato 3 é experimental; atualize-a após alterações nos metadados e verifique os consumidores reais. Publique um armazenamento concluído somente após a validação.
Ida e volta básica de array
import numpy as np
import zarr
from zarr.codecs import BloscCodec
expected = np.arange(96, dtype="float32").reshape(12, 8)
z = zarr.create_array(
"array.zarr", shape=expected.shape, dtype=expected.dtype,
chunks=(4, 4), zarr_format=3,
compressors=BloscCodec(cname="zstd", clevel=5, shuffle="bitshuffle"),
dimension_names=("sample", "feature"),
attributes={"units": "arbitrary", "source": "synthetic example"},
)
for start in range(0, z.shape[0], 4):
z[start:start + 4] = expected[start:start + 4]
reopened = zarr.open_array("array.zarr", mode="r")
np.testing.assert_array_equal(reopened[:], expected)
assert reopened.dtype == expected.dtype
assert reopened.metadata.dimension_names == ("sample", "feature")
assert reopened.attrs["units"] == "arbitrary"
subset = reopened[2:6, 1:4] # Only this selection is materialized.
create_array aceita data= ou shape= mais dtype=; não combine data=
com shape/dtype explícitos. O padrão numérico do formato 3 é um serializador de bytes seguido por
ZstdCodec, não Blosc. Defina um codec explicitamente para reprodutibilidade.
Criação e indexação
import numpy as np
import zarr
z = zarr.create_array(None, data=np.arange(80).reshape(10, 8), chunks=(2, 4))
zeros = zarr.zeros((10, 8), chunks=(2, 4), dtype="f4")
ones = zarr.ones((10, 8), chunks=(2, 4), dtype="f4")
filled = zarr.full((10, 8), fill_value=42, chunks=(2, 4), dtype="i4")
like = zarr.zeros_like(z)
np.testing.assert_array_equal(filled[:], np.full((10, 8), 42))
# Coordinate indexing pairs corresponding coordinates; orthogonal indexing is a product.
np.testing.assert_array_equal(z.vindex[[0, 5], [2, 7]], [2, 47])
np.testing.assert_array_equal(z.get_coordinate_selection(([0, 5], [2, 7])), [2, 47])
assert z.oindex[[0, 5], [2, 7]].shape == (2, 2)
assert z.blocks[0, 0].shape == (2, 4)
z[0, :] = np.arange(8)
Fatias com passo negativo não são suportadas. Leituras de array retornam dados NumPy na configuração padrão da CPU.
np.asarray(z), np.sum(z), z[:], ou um .compute() Dask de um array completo
podem materializar todo o conjunto de dados lógico; use seleções delimitadas ou reduções preguiçosas (lazy).
Redimensionamento e anexação
import numpy as np
import zarr
…
Perguntas frequentes
O que são 'chunks'?
Chunks são pequenos pedaços ou blocos em que seus dados são divididos para facilitar o gerenciamento e o acesso.
Posso usar isso com dados na nuvem?
Sim, Zarr-Python suporta armazenamento em serviços de nuvem como Amazon S3 e Google Cloud Storage.
Quais bibliotecas Python ele usa?
Ele se integra bem com bibliotecas populares como NumPy, Dask e Xarray, que são comuns em computação científica.
Detalhes
Descrição original do autor
Stores and queries chunked N-D scientific arrays with Zarr-Python 3, including codecs, sharding, S3/GCS storage, and NumPy/Dask/Xarray integration. Use for array layout, bounded I/O, format migration, or scientific metadata preservation.
Popularidade
- Estrelas no GitHub
- 51 mil
- Posição no ranking
- #2003
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
13c-metabolic-flux
Estima fluxos metabólicos usando dados de rastreamento de isótopos de carbono-13. É útil para analisar o metabolismo celular e vias bioquímicas.
K-Dense-AI/scientific-agent-skills
adaptyv
Projeta experimentos de caracterização de proteínas usando a API Adaptyv. Ele ajuda a estimar custos, enviar sequências e monitorar resultados de laboratório.
K-Dense-AI/scientific-agent-skills
aeon
Realiza tarefas de aprendizado de máquina em séries temporais. É útil para classificar, prever, detectar anomalias e encontrar padrões em dados sequenciais.
K-Dense-AI/scientific-agent-skills
alphagenome
Consulta efeitos genômicos pré-calculados para variantes genéticas. Ele fornece pontuações e explicações para entender o impacto das variantes no genoma.
K-Dense-AI/scientific-agent-skills
Skills parecidas
clickhouse-io
Ajuda seu agente a otimizar consultas e esquemas no banco de dados ClickHouse. Ele aplica as melhores práticas para cargas de trabalho analíticas de alta performance. Use quando consultas analíticas demoram muito.
affaan-m/ECC
scientific-db-pubmed-database
Ajuda seu agente a buscar artigos científicos na área biomédica. É útil para pesquisas que precisam de informações médicas específicas.
affaan-m/ECC
scientific-db-uspto-database
Permite ao agente consultar dados oficiais de patentes e marcas registradas dos EUA. É útil para pesquisas de propriedade intelectual.
affaan-m/ECC