Numpy: Devo usar newaxis ou nenhum?
Pergunta
Em um numpy pode usar objeto dos newaxis 'na sintaxe corte para criar um eixo de um comprimento, por exemplo:.
import numpy as np
print np.zeros((3,5))[:,np.newaxis,:].shape
# shape will be (3,1,5)
O estados documentação que se pode também uso None
vez de newaxis
, o efeito é exatamente o mesmo.
Existe alguma razão para escolher um sobre o outro? Existe alguma preferência ou estilo guia geral? Minha impressão é que newaxis
é mais popular, provavelmente porque é mais explícito. Então, há alguma razão para que None
é permitido?
Solução
None
é permitido porque numpy.newaxis
é apenas um alias para None
.
In [1]: import numpy
In [2]: numpy.newaxis is None
Out[2]: True
Os autores provavelmente escolheu porque eles precisavam de um constante conveniente, e None
estava disponível.
Quanto ao porquê você deve preferir newaxis
sobre None
: principalmente é porque é mais explícita, e em parte porque um dia os autores numpy
pode alterá-lo para algo diferente de None
. (Eles não estão planejando, e provavelmente não vai, mas não há nenhuma boa razão para preferir None
.)