相关疑难解决方法(0)

传递列表时的高级切片而不是numpy中的元组

在文档中,它说(强调我的):

当选择对象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)

python numpy

5
推荐指数
1
解决办法
663
查看次数

标签 统计

numpy ×1

python ×1