NumPy trozo de matriz utilizando Ninguno
Pregunta
Esto me hizo rascarme la cabeza por un tiempo. Sin querer, estaba cortando una matriz con Ninguno y obteniendo algo más que un error (esperaba un error). En su lugar, devuelve una matriz con una dimensión adicional.
>>> import numpy
>>> a = numpy.arange(4).reshape(2,2)
>>> a
array([[0, 1],
[2, 3]])
>>> a[None]
array([[[0, 1],
[2, 3]]])
¿Este comportamiento es intencional o es un efecto secundario? Si es intencional, ¿hay alguna razón para ello?
Solución
Usar Ninguno es equivalente a usar numpy.newaxis
, así que sí, es intencional. De hecho, son lo mismo, pero, por supuesto, newaxis
lo explica mejor.
The docs :
El objeto newaxis se puede usar en todas las operaciones de corte para crear un eje de longitud uno. newaxis es un alias para "Ninguno", y "Ninguno" se puede usar en lugar de esto con el mismo resultado.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow