[Numpy-discussion] Why multiple ellipses?

Travis Oliphant oliphant at ee.byu.edu
Fri Feb 24 16:09:01 CST 2006


Sasha wrote:

>Numpy allows multiple ellipses in indexing expressions, but I am not
>sure if that is useful.  AFAIK, ellipsis stands for "as many :'s as
>needed", but if there is more than one, how do I know how many :'s
>each of them represents:
>  
>
It should be that the first ellipsis is interpreted as an ellipsis.  Any 
others are silently converted to ':' characters.

>  
>
>>>>x = arange(8)
>>>>x.shape=(2,2,2)
>>>>x[0,...,0,...]
>>>>        
>>>>
>array([0, 1])
>  
>
This is equivalent to

x[0,...,0,:]

which is  equivalent to

x[0,0,:]  (because the ellipsis is interpreted as nothing).

>>>>x[0,0,:]
>>>>        
>>>>
>array([0, 1])
>  
>
>>>>x[0,:,0]
>>>>        
>>>>
>array([0, 2])
>
>In the example above, the first ellipsis represents no :'s and the
>last one represents one.  Is that the current rule that the last
>ellipsis represents all the needed :'s?   What is the possible use for
>that?
>
>  
>
The rule is that only the first ellipsis (from left to right) is used 
and any others are just another spelling of ':'. 

This is the rule that Numeric implemented and so it's what we've kept.  
I have no idea what the use might be, but I saw changing the rule as 
gratuitous breakage.  

Thus, only one ellipsis is actually treated like an ellipse.  Everything 
else is treated as ':'

-Travis





More information about the Numpy-discussion mailing list