Numpy IndexError:索引1超出了大小为1的轴0的范围

时间:2019-04-22 12:17:47

标签: python numpy

我的代码:

import numpy as np
num_people = 2
x = np.zeros((1,75,1,1792,num_people))
for i in range(num_people):
  x[1,:,:,:,i]=np.arange(75,1,1792)

错误:

IndexError                                Traceback (most recent call last)
<ipython-input-17-941de32daec2> in <module>()
      1 for i in range(num_people):
----> 2   x[1,:,:,:,i]=np.arange(75,1,1792)

IndexError: index 1 is out of bounds for axis 0 with size 1

1 个答案:

答案 0 :(得分:0)

答案在于Python的黄金法则-一切都从零开始。 你做了- x = np.zeros((1,75,1,1792,num_people))

表示x的形状为(1、75、1、1792、2) 并且第一个轴只有一个项目,但是在for循环中说-

x[1,:,:,:,i],您要的是第二轴甚至不存在的第二项

因此将x[1,:,:,:,i]替换为x[0,:,:,:,i]

如果您了解形状和访问尺寸之间的区别,这将非常有帮助。所以形状1表示您只有1个项目,但是在访问它时,您需要说出我的第0个值(因为一切都从零开始)