Nuestros mejores desarrolladores han agotado sus provisiones de café, en su búsqueda noche y día por la solución, hasta que Paola encontró la contestación en Gogs y en este momento la compartimos con nosotros.
Solución:
Los puntos suspensivos se utilizan en numpy para dividir estructuras de datos de mayor dimensión.
Está diseñado para significar en este punto, inserte tantos cortes completos (:
) para extender el corte multidimensional a todas las dimensiones.
Ejemplo:
>>> from numpy import arange
>>> a = arange(16).reshape(2,2,2,2)
Ahora, tienes una matriz de 4 dimensiones de orden 2x2x2x2. Para seleccionar todos los primeros elementos en la cuarta dimensión, puede usar la notación de puntos suspensivos
>>> a[..., 0].flatten()
array([ 0, 2, 4, 6, 8, 10, 12, 14])
que es equivalente a
>>> a[:,:,:,0].flatten()
array([ 0, 2, 4, 6, 8, 10, 12, 14])
En sus propias implementaciones, puede ignorar el contrato mencionado anteriormente y usarlo para lo que crea conveniente.
Ellipsis
o ...
no es una característica oculta, es solo una constante. Es bastante diferente a, digamos, javascript ES6, donde es parte de la sintaxis del lenguaje. Ninguna clase integrada o construcción del lenguaje Python hace uso de él.
Entonces, la sintaxis depende completamente de usted, o de otra persona, que haya escrito un código para entenderlo.
Numpy lo usa, como se indica en la documentación. Algunos ejemplos aquí.
En tu propia clase, lo usarías así:
>>> class TestEllipsis(object):
... def __getitem__(self, item):
... if item is Ellipsis:
... return "Returning all items"
... else:
... return "return %r items" % item
...
>>> x = TestEllipsis()
>>> print x[2]
return 2 items
>>> print x[...]
Returning all items
Por supuesto, existe la documentación de Python y la referencia del lenguaje. Pero esos no son muy útiles.
Este es otro uso de los puntos suspensivos, que no tiene nada que ver con las porciones: a menudo lo uso en la comunicación entre subprocesos con colas, como una marca que indica “Terminado”; está ahí, es un objeto, es un singleton, y su nombre significa “falta de”, y no es el Ninguno usado en exceso (que podría colocarse en una cola como parte del flujo de datos normal). YMMV.
Sección de Reseñas y Valoraciones
Si crees que ha sido de utilidad este post, nos gustaría que lo compartas con el resto juniors de este modo contrubuyes a difundir nuestra información.