Python 索引器:索引121383超出大小为117111的轴0的界限
你能帮我解决这个错误吗 我的代码是:Python 索引器:索引121383超出大小为117111的轴0的界限,python,matplotlib,plot,scipy,statistics,Python,Matplotlib,Plot,Scipy,Statistics,你能帮我解决这个错误吗 我的代码是: peaks, _ = find_peaks(my_dataset['quality'], height=500) plt.figure(figsize=(10,8)) x = my_dataset.index y = my_dataset['quality'] plt.plot(x, y) plt.plot(peaks, y[peaks], "x") plt.xlabel('datetime') plt.ylabel('values')
peaks, _ = find_peaks(my_dataset['quality'], height=500)
plt.figure(figsize=(10,8))
x = my_dataset.index
y = my_dataset['quality']
plt.plot(x, y)
plt.plot(peaks, y[peaks], "x")
plt.xlabel('datetime')
plt.ylabel('values')
plt.legend(loc='best')
plt.title('Qualities')
plt.show()
我得到了这个错误:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-57-97109c9c4b15> in <module>
3 y = my_dataset['quality']
4 plt.plot(x, y)
----> 5 plt.plot(peaks, y[peaks], "x")
6
7 plt.xlabel('datetime')
“峰值”数组包含数据集峰值的值。然而,这很奇怪,因为max(peaks)给出了113940,而max(my_dataset.quality)给出了66790.0。不应该给出峰值的最大值吗
“peaks”数组提供数据集的值,而不是索引。像这样:
array([ 4112, 4117, 4124, 4126, 4131, 4135, 4137, 4139,
4143, 4146, 4150, 4154, 4156, 4158, 4160, 4164,
4169, 4174, 4176, 4181, 4184, 4186, 4191, 4193, ...
我想要的最终结果是这样的:(为了观察这个想法,我编辑了绘制当前直方图)。所以最后我只想在数据集的峰值上加上“X”符号
您的
find\u peaks
方法返回的索引大于整个数组的长度。Python然后尝试在117111个数字的列表中查找121383个数字。这显然是不可能的,任务失败了
问题可能出在
find_peaks
方法中。你检查过它是否真的返回索引而不是峰值的y值了吗?对于任何对这个问题感兴趣的人,一位优秀的用户在这方面帮助了我。但是,它不能解决zip问题,但这并不重要,因为它本身就解决了问题。index out bounds告诉您,您的索引超出了数组的大小。数组是否表示“peaks”数组?当它不是一个真正的峰值时,我是否应该输入值“-1”,然后绘制它?我认为这将解决这种情况,因为索引和“质量”值的大小相同,只是“峰值”数组不同,对吗@U3.1415926它应该是您的y
数组和峰值。您可以通过打印峰值的最大值和峰值的大小来测试这一点。奇怪的是,“查找峰值”不应该给出峰值值(这也是我的数据集的最大值)?因为max(peaks)是113940,max(my_dataset.quality)是66790.0,这很奇怪。另外,len(peaks)是11952,len(my_dataset.index)是117111-这没关系。如果您能提供一个最小的工作示例,它总是最好的。它返回y值的峰值。我想在我的图的顶点上画一个“x”。一旦“查找峰值”方法找到峰值,我是否应该记录数据集的索引,以便解决我的需要?您能否将find\u peaks
方法添加到您的问题中?如果max(peaks)
返回113940,并且数组有117111个条目,那么将不再抛出数组越界异常。您可以使用x.index(y)
方法获取x数据数组中y值的索引。
array([ 4112, 4117, 4124, 4126, 4131, 4135, 4137, 4139,
4143, 4146, 4150, 4154, 4156, 4158, 4160, 4164,
4169, 4174, 4176, 4181, 4184, 4186, 4191, 4193, ...