对于一维 `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 处的项目
当使用 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
.