python - IndexError:索引 121383 超出轴 0 的范围,大小为 117111
问题描述
你能帮我解决这个错误吗?
我的代码是:
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')
... IndexError:索引 121383 超出轴 0 的范围,大小为 117111
这是什么意思,我该如何修复它?我应该写什么不同的?
PS:我的数据集看起来像这样:
cdf_epoch
2003-10-10 00:01:33.985000+00:00 3.294
2003-10-10 00:10:06.130000+00:00 3.294
2003-10-10 00:18:37.959000+00:00 3.917
2003-10-10 00:27:10.104000+00:00 3.116
2003-10-10 00:35:41.933000+00:00 3.383
...
2003-11-09 23:20:19.140000+00:00 8.636
2003-11-09 23:28:50.969000+00:00 9.170
2003-11-09 23:37:23.113000+00:00 7.301
2003-11-09 23:45:54.943000+00:00 9.170
2003-11-09 23:54:27.087000+00:00 7.657
“peaks”数组包含数据集的尖峰值。然而,这很奇怪,因为 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”符号。
解决方案
对于任何对此问题感兴趣的人,一位好用户帮助我解决了这个问题。但是,它并不能解决 zip 问题,但这并不重要,因为它可以解决问题本身。
推荐阅读
- android - 通过活动传递数据
- c - “else”如何在 C 中的“1 line if”中工作?
- python-3.x - Tensorflow-Probability 中具有 DenseVariational 层的简单线性回归模型返回:TypeError: 'NoneType' object is not callable
- javascript - 在 Vue js 中未触发创建
- javascript - 从外部 json 数据创建 3D 谷歌图表到 html 文件
- php - 尝试使用 php 进行 curl 发布请求
- excel - C# 中的 RTD 客户端
- javascript - 嵌套过滤器
- neo4j - 所有节点都与同一节点有关系的搜索路径
- html - 在 Shiny 中使用 HTML 将 Tooltip 添加到 tabPanel