2017-03-03 48 views
1

我知道,在替代`:`那一切选择

np.arange(3)[:] 

:意味着我要从特定维度的所有元素。现在,我需要灵活就我想要的元素而言。我也有类似的功能:

def pickSomething(index): 
    return np.arange(3)[index] 

其中index可以是0,1或2。但是,我也希望能够在不改造它返回整个阵列。 pickSomething(:)自然是无效的语法。如果我做pickSomething(None),我创建了一个我不想要的额外维度。

TL;博士:是否有:替代,我可以沿着像pickSomething(index)函数传递,将产生我不变np.arange(3)阵列?

+0

看看这是否有帮助 - [''返回等同于':'从函数索引数组'](http://stackoverflow.com/q/42392260/3293881)。 – Divakar

+0

@Divakar它的确如此。 – FooBar

回答

1

我认为您在寻找Ellipsis的对象。

>>> import numpy as np 
>>> def pickSomething(index): 
...  return np.arange(3)[index] 
>>> pickSomething(Ellipsis) 
array([0, 1, 2]) 

在Python 3 ...Ellipsis的简写。