【问题标题】:How to get index of maximum value of each consecutive 4 numbers in a list of python? [duplicate]如何获取python列表中每个连续4个数字的最大值索引? [复制]
【发布时间】:2017-03-15 00:53:34
【问题描述】:

我有一个列表 L。它有随机数。

我想得到L每4个数中最大数的索引。

有什么办法呢?

我可以从下面获取最大值(我猜)但不确定如何获取索引值?还有一种方法可以在 nd 数组中做同样的事情???

import pandas as pd
a=np.random.rand(100)
L=list(a)
pd.rolling_max(L, 4)

【问题讨论】:

  • 只要做一个for循环,做一个if语句来检查该值是否等于列表中的最大数,然后对列表中的值使用索引方法。网络上有很多这样的基础教程。
  • 您可能还想查看this answer
  • 提问者:Linked dup 有使用 pandas 和 numpy 的解决方案,所以应该解决你的问题。
  • [max(enumerate(itertools.islice(a, i, i+4), start=i),key=lambda x:x[1])[0] for i in range(len(a)-4+1)]

标签: python python-3.x pandas numpy max


【解决方案1】:

没有比查看 4 个尺寸子集的列表更快的方法了。对于每个子集,您可以有一个变量来存储迄今为止看到的最大数量的索引(在 4 个中)。这是 O(n) 最快的速度,因为您必须至少查看列表中的每个数字一次。

【讨论】:

  • 谢谢,能否举个例子
  • 这是评论,不是答案。
猜你喜欢
  • 2016-08-04
  • 2019-10-20
  • 1970-01-01
  • 1970-01-01
  • 2019-09-30
  • 2022-01-13
  • 2019-03-25
  • 1970-01-01
  • 2015-10-13
相关资源
最近更新 更多