eficiencia de numpy.array
Francesc Altet
faltet en carabos.com
Mar Mar 20 17:53:23 CET 2007
El dt 20 de 03 del 2007 a les 16:08 +0100, en/na Jesus Cea va escriure:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Chema Cortes wrote:
> > Si tenemos una matriz multidimensional n x m :
> >
> > M[0,-1] -> último item de la primera fila
> > M[0,] -> primera fila
> > M[...,0] -> lista con los primeros elementos de todas las filas
> > M[...,0:1] -> lista de rebanados de cada fila, cada rebanado con sólo el
> > primer item de cada fila
> > M[::2,] -> filas pares
>
> ¿Hay algún tipo de datos estándar que soporte este protocolo?. Las
> listas y las tuplas no lo hacen...
Como yo lo veo, es difícil que se llegue a implementar esta versión del
rebanado extendido (tal y como se entiende en éste mensaje) para listas
o tuplas.
La razón pasa por que el uso de rebanados extendidos (aunque yo prefiero
llamarles rebanados multidimensionales) es de difícil interpretación en
el caso de listas de listas con diferentes longitudes. Por ejemplo,
consideremos:
l = [[1,2],
[4],
[5,6,7]]
Si hacemos uso de esta interpretación del rebanado extendido,
tendriamos:
1. l[:,0] --> [1,4,5] (primera columna)
2. l[:,1] --> [2,6] (segunda columna)
3. l[:,2] --> [7] (tercera columna)
como se ve, el caso 2 y 3 son bastante problemáticos de interpretar, ya
que no sabemos de qué filas provienen los elementos resultantes, cosa
que le resta mucha utilidad a este tipo de rebanados.
Naturalmente, este problema no existe en listas de listas regulares
(i.e. que todas las pertenecientes a un mismo nivel de anidamiento
tienen la misma longitud). Es por eso que este tipo de rebanado sí que
se haya implementado en NumPy, y que de hecho sea una de las
características yo diria que fundamentales del paquete.
Saludos,
--
Francesc Altet | Be careful about using the following code --
Carabos Coop. V. | I've only proven that it works,
www.carabos.com | I haven't tested it. -- Donald Knuth
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es
Más información sobre la lista de distribución Python-es