numpy代码中的...是什么意思?

7 投票
3 回答
2220 浏览
提问于 2025-04-16 05:53

这个东西叫什么呢?我不知道怎么搜索它;我试着用“省略号”在谷歌上找过。这里我说的不是在交互式输出中用点点来表示没有显示完整数组的情况,而是我在看的代码中,

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

根据我的实验,它的功能似乎和索引中的:很相似,但可以代替多个:,所以x[:,:,1]x[...,1]是等价的。

3 个回答

0

这里有相关的文档:http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html

它的功能,正如你所描述的那样。

3

虽然这个功能主要是为了支持numpy和其他类似的模块,但它是语言的一个核心特性,可以在任何地方使用,比如这样:

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

甚至可以这样使用:

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

没错,你说得对。它会根据需要填入尽可能多的:。唯一的不同在于当你使用多个省略号的时候。在这种情况下,第一个省略号的作用和之前一样,但后面的每一个省略号都会被转换成一个:

撰写回答