【发布时间】:2017-11-25 22:50:38
【问题描述】:
所以,这让我有点难过。我有一个我试图迭代的字典,我正在寻找峰值。概念在这里:
out = {}
for i in data.keys():
if(data[i].next() -2 > data[i]:
out.update(i, data[i])
我已尝试将其放入 list(range(len(data))) 并通过这种方式进行迭代,这适用于虚拟数据。但是我的数据没有像 1、2、3、4 这样的键。示例数据:
{ 29600: 0.65867825014992798,
30000: 1.3958743297851659,
30400: 2.1166100767879361,
30800: 2.0297784488567414,
31200: 1.9480822174184762,
31600: 1.887373119058025,
32000: 1.8890589139490572,
32400: 4.1795916676025842,
32800: 3.828821494194075,
33200: 3.7060572197219459,
33600: 3.647037270729065,
34000: 3.6029200898094329,
34400: 3.5352886422138452,
34800: 6.7902577064444039,
35200: 6.5199005963210857,
数据中有一些点,其中值增加了一个很大的值(大约 3),我试图找到与这些点关联的索引和值。因此,我使用下一个值 - 2 并查看它是否仍大于前一个值作为我的检查。如果这样更容易的话,这个 dict 可以很容易地成为 pandas 数据系列。
【问题讨论】:
-
你能在你的例子中给出峰值吗?
-
请记住,除非您创建 OrderedDict,否则不会对字典进行排序。因此,像您现在依靠“下一个”值作为某个数字一样进行迭代并不总是有效。
-
我添加了更好的示例数据,@Tbaki,但这根本不起作用,我无法遍历数据。
-
@NickHale 你只想要最大键/值?
-
不只是最大值,数据非常大,分步进行。我正在寻找步骤点的键/值
标签: python pandas numpy dictionary