2016-05-31 369 views
0

有人请帮忙解释这个错误信息的含义吗?对于Python中的数组a和b,a [b [0:2]]实际上是在做什么代码?

我想了解这部分代码行。所以我用一个更简单的例子来试验自己。

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

b = [1,3,5,7] 

我写

a[b[0:2]] 

,并有一个错误注释:

指数3超出范围为0轴的大小为3

我明白了什么呢b[0:2]手段,这意味着你需要的b元素与索引0到索引1,让您得到[1,3]。但是我不太明白当你把它传递给a是什么意思?

我想了解什么是代码a[b[0:2]]实际上是试图做的。

请问有人请帮忙吗?谢谢!

+0

你试图做什么?即假设您定义的是&b,您希望得到哪个输出? – Yaron

+3

你知道'b [0:2]'可能意味着什么吗?然后将该表达式的返回值传递给'a [...]'。没有更多,没有更多。 –

+0

@Yaron我不想得到任何输出,我只是试验自己,试图理解代码的含义。 – user71346

回答

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

两个数组:

一个 - 与元件编号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。但你没有元素#3在

>>> a2[b[0:2]] 
array([[2, 3], 
     [6, 7]]) 
>>> 

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

+0

是的,我现在明白了。非常感谢! – user71346

+0

@ user71346:很好:-) – Yaron

相关问题