'IndexError: only integers, slices (`:`), ellipsis (`...`)' ...?
'IndexError: only integers, slices (`:`), ellipsis (`...`)' ...?
这个错误有很多问题,但我无法在我的代码中找到问题的根源在哪里。我的代码如下:
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 (
None) and integer or boolean arrays are valid indices
segs
是一个数组,relDiff
是我做的一个计算相对差的函数。这是该函数:
def relDiff(x,x_ref):
return np.abs((x-x_ref)/x_ref)
非常感谢任何帮助!
由于您使用 segs
中的项目作为 arr_x
和 arr_y
的索引,因此 segs
必须是整数的 list/array。否则,您必须将每个项目转换为整数,例如 arr_x[int(i)]
。在您的程序中这样做在逻辑上是否有意义由您决定,因为您的要求是未知的。我们不知道 segs
包含什么。
试试这个:
for i in segs:
print(i)
segs[i]
问题应该很明显了!
In [317]: x = np.array([1.2, 3.2, .5])
In [318]: for i in x:
...: print(i)
...: x[i]
...:
1.2
Traceback (most recent call last):
File "<ipython-input-318-41c2ba7b6f7d>", line 3, in <module>
x[i]
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
In [319]: x[1.2]
Traceback (most recent call last):
File "<ipython-input-319-28ffb042b45f>", line 1, in <module>
x[1.2]
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
如果必须按索引迭代(这里可能不需要),使用range
:
In [321]: for i in range(len(x)):
...: print(i)
...: print(x[i])
...:
...:
0
1.2
1
3.2
2
0.5
这个错误有很多问题,但我无法在我的代码中找到问题的根源在哪里。我的代码如下:
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 (
None) and integer or boolean arrays are valid indices
segs
是一个数组,relDiff
是我做的一个计算相对差的函数。这是该函数:
def relDiff(x,x_ref):
return np.abs((x-x_ref)/x_ref)
非常感谢任何帮助!
由于您使用 segs
中的项目作为 arr_x
和 arr_y
的索引,因此 segs
必须是整数的 list/array。否则,您必须将每个项目转换为整数,例如 arr_x[int(i)]
。在您的程序中这样做在逻辑上是否有意义由您决定,因为您的要求是未知的。我们不知道 segs
包含什么。
试试这个:
for i in segs:
print(i)
segs[i]
问题应该很明显了!
In [317]: x = np.array([1.2, 3.2, .5])
In [318]: for i in x:
...: print(i)
...: x[i]
...:
1.2
Traceback (most recent call last):
File "<ipython-input-318-41c2ba7b6f7d>", line 3, in <module>
x[i]
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
In [319]: x[1.2]
Traceback (most recent call last):
File "<ipython-input-319-28ffb042b45f>", line 1, in <module>
x[1.2]
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
如果必须按索引迭代(这里可能不需要),使用range
:
In [321]: for i in range(len(x)):
...: print(i)
...: print(x[i])
...:
...:
0
1.2
1
3.2
2
0.5