Roll array along an axis

Aberta
#281 15 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
35/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
numpy, rust
Domínio
data

Direção de pesquisa

Start by reviewing the crate's existing array-axis and view/indexing APIs, using the np.roll examples as the behavioral reference. Determine how rolling by an axis and signed shift should behave, including wraparound and the central-difference example. Done means the crate exposes equivalent rolling behavior with coverage for the shown two-dimensional cases.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

In numpy you can roll an array along an axis. Which is an index shift with wrap around, meaning, that given an array

a = np.arange(1, 10).reshape(3, 3)
[[1, 2, 3],
 [4, 5, 6],
 [7, 8, 9]]

rolling along the 2nd axis by 1 results in

np.roll(a, 1, 1)
[[3, 1, 2],
 [6, 4, 5],
 [9, 7, 8]]

I wonder if this can be cheaply implemented in this crate, since it is basically just a remapping of indices? It would be useful to calculate a gradient with periodic boundaries (wrap around). For example, a central difference (modulo prefactors) in y direction can be implemented like

np.roll(a, -1, 1) - np.roll(a, 1, 1)
[[-1,  2, -1],
 [-1,  2, -1],
 [-1,  2, -1]
Linguagem predominante
Rust
Estrelas
4.3k
Forks
391
Métricas de merge de PRs
Nenhum PR com merge em 30d

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de rust-ndarray/ndarray

Todas as issues de rust-ndarray/ndarray

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.