2010-10-22 171 views
6

它叫什么?我不知道如何搜索它;我试着把它称为省略号与谷歌。我不交互输出的意思,当点被用来表示一个没有被显示的全阵列,但在代码中,我正在看,在numpy代码中意味着什么?

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

从我的实验,它似乎功能类似于:的索引,但代表多个:'s,使得x[:,:,1]等于x[...,1]

+3

检查出http://stackoverflow.com/questions/772124/what-does-the-python-ellipsis-object-do和http://stackoverflow.com/questions/118370/how-do-you-use-the- ellipsis-slicing-syntax-in-python – sdolan 2010-10-22 00:52:09

+0

太棒了,无法搜索到它。 – Thomas 2010-10-22 00:54:54

+1

哈,但它被称为“省略号”,所以我应该能够。当“python numpy ...”不起作用时,我早早放弃了。谢谢sdolan。 – Thomas 2010-10-22 01:00:43

回答

7

是的,你说得对。它根据需要填写尽可能多的:。唯一的区别是使用多个省略号。在这种情况下,第一个省略号以相同的方式起作用,但其余的每一个都被转换为单个:

3

尽管此功能主要存在以支持numpy的和其他类似的模块,它是语言的核心特点,可以在任何地方使用,像这样:

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

甚至:

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