Eu tenho um array a
de tamanho (M, N, K)
. E eu tenho um array b
de tamanho (M, N)
com valores inteiros de [0, K-1].
Como faço para obter a matriz... c
de tamanho (M, N)
, onde
c[i, j] == a[i, j, b[i, j]]
da maneira mais simples?
Qual parte do guia de indexação é?
Para extrair dados dessa maneira, você passa índices correspondentes como matrizes bidimensionais em cada uma das 3 dimensões, onde as 2 primeiras devem ser o resultado de
meshgrid
matrizes (observaçãoindexign='ij'
):Veja Indexação avançada no NumPy e numpy.meshgrid para mais detalhes.
Exemplo:
Você pode usar indexação avançada :
Saída:
Tomando o exemplo de @Vitalizzare: