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?

Foi útil?

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
scroll top