首页 > 解决方案 > 'IndexError: 只有整数、切片(`:`)、省略号(`...`)' ...?

问题描述

这个错误有很多问题,但我无法在我的代码中找到问题的根源。我的代码如下:

for i in segs:
    if relDiff(segs[i+1], segs[i]) > 0.05:
        arr_x[i] = 0; arr_y[i] = 0

我在第三行收到错误IndexError: only integers, slices (::), ellipsis (...), numpy.newaxis () and integer or boolean arrays are valid indices

segs是一个数组,relDiff是我创建的一个计算相对差异的函数。这是该功能:

def relDiff(x,x_ref):
    return np.abs((x-x_ref)/x_ref)

很感谢任何形式的帮助!

标签: pythonnumpyindex-error

解决方案


由于您将项目用作andsegs的索引,因此必须是整数列表/数组。否则,您必须将每个项目转换为整数,例如. 由于您的要求未知,因此在您的程序中执行此操作在逻辑上是否有意义由您决定。我们不知道包含什么。arr_xarr_ysegsarr_x[int(i)]segs


推荐阅读