【发布时间】:2016-07-08 18:01:54
【问题描述】:
我有一个浮点列表,例如[x1,x2,x3,x4,....xn],它们被绘制为折线图。我想找到坡度最陡的一组点。
现在,我正在计算循环中一组点之间的差异,并使用max() 函数来确定最大点。
还有其他优雅的方法吗?
【问题讨论】:
-
如果你的点是等距的(或假设是等距的)你的方法是尽可能优雅的。问题是你的代码有多优雅。
-
目前,我的做法如下
for i in range(len(list)): slope.append(list[i] - list[i+1]) print(slope.index(max(slope))),其中斜率是差异列表,列表是浮点数的原始列表 -
将你的列表变成一个numpy数组并使用
numpy.diff可能会感觉更优雅。 (例如,代码类似于steepest = np.argmax(np.diff(np.array(my_list)))。 -
@Mechanic 顺便说一句,您的代码无法运行。你得到一个索引错误。
-
@Ev.Kounis 抱歉。第一行应该是
for i in range(len(list)-1)。忘记加-1
标签: python