NumPy fatia matriz usando Nenhum
Pergunta
Este tinha-me coçar a cabeça por um tempo. Eu estava acidentalmente cortar uma matriz com Nenhum e obter algo diferente de um erro (eu esperava um erro). Em vez disso, ele retorna uma matriz com uma dimensão extra.
>>> import numpy
>>> a = numpy.arange(4).reshape(2,2)
>>> a
array([[0, 1],
[2, 3]])
>>> a[None]
array([[[0, 1],
[2, 3]]])
Isso é intencional comportamento ou um efeito colateral? Se intencional, há alguma razão para isso?
Solução
Usando Nada é equivalente a usar numpy.newaxis
, então sim, é intencional. Na verdade, eles são a mesma coisa, mas, é claro, newaxis
soletrá-la melhor.
Os docs :
O objecto newaxis pode ser usado em todas as operações de corte para criar um eixo de um comprimento. newaxis é um alias para ‘Nenhum’, e ‘Nenhum’ pode ser usado no lugar deste com o mesmo resultado.
Um relacionado questão SO.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow