对于一维 `X`,`X[n]` 和 `X[..., n]` 有什么区别?

For 1-D `X`, what is the difference between `X[n]` and `X[..., n]`?

当使用 ellipsis (...) 索引一维 ndarray 时,我希望表达式 X[0]X[..., 0] 是语义相同。但是,它们的字符串表示不同:

In [522]: X = arange(5) 

In [523]: repr(X[0])                         
Out[523]: '0'

In [524]: repr(X[..., 0])
Out[524]: 'array(0)'

我找不到任何其他差异,事实上,根据 array_equal:

它们是相等的
In [526]: array_equal(X[0], X[..., 0])
Out[526]: True

如果根据 array_equal 它们是相等的,为什么它们具有不同的字符串表示形式?

X[0] returns 一个 numpy.int64 对象。
当你说 X[0] 时,你是在告诉 python 给你数组 X 中索引 0 处的对象。

X[...,0] returns 一个 0 维的 numpy 数组。
当您说 X[...,0] 时,您是在告诉 python 沿着数组 X.

的最后一个轴为您提供索引 0 处的项目