对于 Python 中的数组 a 和 b,代码 a[b[0:2]] 实际上试图做什么?

For an array a and b in Python, what is the code a[b[0:2]] is actually trying to do?

有人可以帮忙解释一下这个错误消息的含义吗?

我正在尝试理解这部分代码行。所以我尝试了一个更简单的例子。

我有

a = array([[0, 1],  
       [2, 3],  
       [4, 5]])

b = [1,3,5,7]

我写了

a[b[0:2]]

并且有一条错误评论:

index 3 is out of bounds for axis 0 with size 3

我明白了b[0:2]是什么意思,就是把b中索引为0的元素取到索引1,所以得到[1,3]。但是我不太明白传给a是什么意思?

我想了解代码 a[b[0:2]] 实际要做什么。

有人可以帮忙吗?谢谢!

>>> a = np.array([[0, 1],  [2,3],[4,5]])
>>> a2 = np.array([[0, 1],  [2,3],[4,5],[6,7]])

两个数组:

a - 元素编号为 0 到 2

a2 - 元素编号为 0 到 3

>>> b[0:2]
[1, 3]

b[0:2] - 表示两个元素(#1 和#3)

>>> a[b[0:2]]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: index 3 is out of bounds for axis 0 with size 3

意思是 - 你尝试从 a 中获取元素 #1 和 #3。但是你在 a

中没有元素 #3
>>> a2[b[0:2]]
array([[2, 3],
       [6, 7]])
>>>

意思是 - 你试图从 a2 中获取元素 #1 和 #3。结果是:两个元素 #1 是 [2,3] 和 #3 是 [6,7]