Thomas
Thomas

Reputation: 6762

What does ... mean in numpy code?

And what is it called? I don't know how to search for it; I tried calling it ellipsis with the Google. I don't mean in interactive output when dots are used to indicate that the full array is not being shown, but as in the code I'm looking at,

xTensor0[...] = xVTensor[..., 0]

From my experimentation, it appears to function the similarly to : in indexing, but stands in for multiple :'s, making x[:,:,1] equivalent to x[...,1].

Upvotes: 7

Views: 2597

Answers (3)

SingleNegationElimination
SingleNegationElimination

Reputation: 156178

Although this feature exists mainly to support numpy and other, similar modules, it's a core feature of the language and can be used anywhere, like so:

>>> class foo:
...   def __getitem__(self, key):
...     return key
... 
>>> aFoo = foo()
>>> aFoo[..., 1]
(Ellipsis, 1)
>>> 

or even:

>>> derp = {}
>>> derp[..., 1] = "herp"
>>> derp
{(Ellipsis, 1): 'herp'}

Upvotes: 3

ars
ars

Reputation: 123518

Yes, you're right. It fills in as many : as required. The only difference occurs when you use multiple ellipses. In that case, the first ellipsis acts in the same way, but each remaining one is converted to a single :.

Upvotes: 7

Winston Ewert
Winston Ewert

Reputation: 45039

Documentation here: http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html

It does, well, what you describe it doing.

Upvotes: 0

Related Questions