2010-10-22 8 views
6

Et comment ça s'appelle? Je ne sais pas comment le chercher; J'ai essayé de l'appeler ellipsis avec le Google. Je ne veux pas en sortie interactive lorsque les points sont utilisés pour indiquer que le tableau complet n'est pas montré, mais comme dans le code que je regarde,Qu'est-ce que ... signifie en code numérique?

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

De mon expérimentation, il semble fonctionnent de la même manière que : dans l'indexation, mais représente plusieurs :, soit x[:,:,1] équivalent à x[...,1].

+3

Découvrez http://stackoverflow.com/questions/772124/what-does-the-python-ellipsis-object-do et http://stackoverflow.com/questions/118370/how-do-you-use-the- ellipsis-slicing-syntax-in-python – sdolan

+0

super, n'a pas été capable de le chercher. – Thomas

+1

Ha, mais ça s'appelle "ellipse", donc j'aurais dû pouvoir. J'ai abandonné tôt quand "python numpy ..." n'a pas fonctionné. Merci sdolan. – Thomas

Répondre

7

Oui, vous avez raison. Il remplit autant de : que nécessaire. La seule différence se produit lorsque vous utilisez plusieurs ellipses. Dans ce cas, la première ellipse agit de la même manière, mais chaque ellipse restante est convertie en un seul :.

3

Bien que cette fonctionnalité existe principalement pour soutenir numpy et d'autres modules similaires, il est une caractéristique essentielle de la langue et peut être utilisé partout, comme ceci:

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

ou même:

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