在文档中,它说(强调我的):
当选择对象obj是非元组序列对象,ndarray(数据类型为integer或bool)或具有至少一个序列对象或ndarray(数据类型为integer或bool)的元组时,将触发高级索引.高级索引有两种类型:整数和布尔值.
<剪断>
还要认识到
x[[1,2,3]]会触发高级索引,而x[[1,2,slice(None)]]会触发基本切片.
我知道为什么x[(1, 2, slice(None))]触发基本切片.但是x[[1,2,slice(None)]],当[1,2,slice(None)]满足作为非元组序列的条件时,为什么会触发基本切片?
在相关的说明中,为什么会发生以下情况?
>>> a = np.eye(4)
>>> a[(1, 2)] # basic indexing, as expected
0.0
>>> a[(1, np.array(2))] # basic indexing, as expected
0.0
>>> a[[1, 2]] # advanced indexing, as expected
array([[ 0., 1., 0., 0.],
[ 0., 0., 1., 0.]])
>>> a[[1, np.array(2)]] # basic indexing!!??
0.0
Run Code Online (Sandbox Code Playgroud)