我试图用python切片一个3d数组。
data = np.zeros((150, 3, 25))
for i in range (1, 26):
data2[:,:,i] = data[:, i*3-1:i*3+2]
但是,我不断收到此错误消息:
IndexError: index 25 is out of bounds for axis 2 with size 25
我是python的新手,但我对范围语法的理解是第一个数字是包含的,但最后一个数字是独占的。因为data
是150 * 3 * 25数组,并且我希望此命令影响所有第1到第25页,我是否应该能够使用此命令进行切片?对不起,如果这是一个简单的错误 - 我是python的新手。如果有人能帮忙的话会很棒。
我正在运行python 3.x
答案 0 :(得分:0)
Python索引从0开始,因此当迭代时你为i
达到25时,你会尝试索引你为25个元素分配空间的轴中的第25个元素。
因此,要么data = np.zeros((150, 3, 26))
或将范围更改为range(1, 25)
。