首页 > 解决方案 > 如何解决python中的IndexError

问题描述

我正在尝试将 z 放在 x 和 y 上,但我遇到IndexError: index 50 is out of bounds for axis 1 with size 50了问题sum[y_i,x_i] = sum[y_i,x_i] + z[0][i]

我试图通过添加负 1 来解决这个问题,for i in range(pts-1):但它没有用。对此的任何支持将不胜感激。

这是我得到的错误输出:

IndexError  Traceback (most recent call last)
<ipython-input-65-51245b26f0b5> in <module>
     43             x_i = x_inds[0][i]
     44             y_i = y_inds[0][i]
---> 45             sum[y_i,x_i] = sum[y_i,x_i] + z[0][i]
     46             num[y_i,x_i] = num[y_i,x_i] + 1
     47 

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

标签: pythonnumpy

解决方案


设置数组时出错。x_inds[14]的值是50。如果想得到sum数组x轴的第50个值,就得写sum[y][49]。由于 sum 数组有 50 个元素,因此当您键入 sum [y][50] 时,您会尝试获取第 51 个元素,因此会出现错误。当我按如下方式进行操作时,它起作用了。

for i in range(pts):
    x_i = x_inds[i] -1
    y_i = y_inds[i] -1
    print(str(x_i) + " " + str(y_i) )
    sum[y_i][x_i] = sum[y_i][x_i] + z[i]
    num[y_i][x_i] = num[y_i][x_i] + 1

推荐阅读