Python 巨蟒:如何知道楼梯的顶点?

Python 巨蟒:如何知道楼梯的顶点?,python,numpy,matplotlib,scipy,Python,Numpy,Matplotlib,Scipy,假设我们有一个逐渐增加的分布x,我想知道这个分布的峰值 为了更好地了解这一点,我举了一个例子: x=np.array([0,1,1.1,3,3.1,3.12,6,6.12,8]) 平面图(x) plt.show() 峰值=某些函数提取峰值() 打印('输出:',峰值) 输出:[1,3,6,8] scipy.signal.find_peaks如果峰值更突出,则是一个不错的选择。可能最简单的选择是计算第一个差异,并设置一些适用于您的用例的阈值: x[np.flatnonzero(np.diff(

假设我们有一个逐渐增加的分布x,我想知道这个分布的峰值

为了更好地了解这一点,我举了一个例子:

x=np.array([0,1,1.1,3,3.1,3.12,6,6.12,8])
平面图(x)
plt.show()
峰值=某些函数提取峰值()
打印('输出:',峰值)

输出:[1,3,6,8]

scipy.signal.find_peaks
如果峰值更突出,则是一个不错的选择。可能最简单的选择是计算第一个差异,并设置一些适用于您的用例的阈值:

x[np.flatnonzero(np.diff(x, prepend=0)>=1)]
# array([1., 3., 6., 8.])

scipy.signal.find_peaks
如果峰值更突出,则是一个不错的选择。可能最简单的选择是计算第一个差异,并设置一些适用于您的用例的阈值:

x[np.flatnonzero(np.diff(x, prepend=0)>=1)]
# array([1., 3., 6., 8.])

我尝试使用scipy.signal.find_peaks,但不适用于此分布。如何准确定义“峰值”?对我来说,峰值是y轴的增加。例如,在本例中,输出。我尝试使用scipy.signal.find_peaks,但不适用于此分布。如何准确定义“峰值”?对我来说,峰值是y轴的增加。在本例中,输出就是一个例子。这是一个非常好的解决方案,但我希望它是自动的。由于分布变化很大。也许可以自动计算阈值。不确定如何避免这种情况。想想这些函数,比如peak_finder,也有很多参数和阈值需要设置,因为它们是必需的@SSR这是一个非常好的解决方案,但我希望它是自动的。由于分布变化很大。也许可以自动计算阈值。不确定如何避免这种情况。认为这些函数(如peak_finder)也有许多参数和阈值需要设置,因为它们是@ssr所必需的