用于数组切片的python范围语法

时间:2017-06-21 04:13:24

标签: python arrays range

我试图用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

1 个答案:

答案 0 :(得分:0)

Python索引从0开始,因此当迭代时你为i达到25时,你会尝试索引你为25个元素分配空间的轴中的第25个元素。

因此,要么data = np.zeros((150, 3, 26))或将范围更改为range(1, 25)