IndexError:索引1000超出轴0的大小为1000的范围

时间:2016-04-26 21:55:39

标签: python for-loop numpy indexing

我是python的新手,索引对我来说仍然很难。我试图使用迭代操作绘制几个值,但它似乎不起作用,并给我上面的错误。请帮我。感谢。

我的代码:

import numpy as np
import matplotlib.pyplot as mp

e = np.exp
z = np.arange(1000)


for i in z:
    while True:
    H_2 = 0.58*e(-(z[i]/81)**2)
    i += 1

mp.scatter(H_2 , z, c = 'r')
mp.show()

2 个答案:

答案 0 :(得分:1)

此行显示错误i += 1

如果您打算使用while循环,请不要忘记添加break声明,否则您将陷入无限循环。没有任何其他细节,我不明白为什么在这种情况下有必要。

除此之外,我将H_2定义为空列表,并将计算中的任何值附加到其中。根据{{​​3}},H_2需要是类似数组的值。

所以看起来应该是这样的:

import numpy as np
import matplotlib.pyplot as mp

e = np.exp
z = np.arange(1000)
H_2 = []

for i in z:
    H_2.append(0.58*e(-(i/81)**2))

mp.scatter(H_2 , z, c = 'r')
mp.show()

希望图表按预期显示。

答案 1 :(得分:1)

因此,作为索引的一般入门,您需要记住索引是基于零的。因此,如果你有一个包含5个元素的数组,索引0将获得第一个元素等,索引4将获得第5个和最后一个元素。据说索引5因此试图访问第6个元素,因此无效。

现在到Python,你应该知道列表中的x''语句将遍历lost中的所有元素,将实际值而不是索引放入变量x。