Python:如何从1D阵列或列表中获取局部最大值
发布时间:2020-12-30 15:03:33 所属栏目:Python 来源:互联网
导读:我是 Python的新手,我有一个问题,我找不到解决的问题…希望有人可以提供帮助: 我需要获取从csv文件导入的数据集的所有本地最大值的列表. 值的范围从0到0.5左右. 我只需要获取一个数据行(“Werte”,数组或“N”,列表)的局部最大值列表来对它们进行统计. 这就
我是
Python的新手,我有一个问题,我找不到解决的问题…希望有人可以提供帮助:
我只需要获取一个数据行(“Werte”,数组或“N”,列表)的局部最大值列表来对它们进行统计. 这就是我所拥有的: import numpy as np from numpy import * N = [] file = open('C:/Auswertung/PEE/PEE_L_1_O_130702-1.1.csv','r') Probe = file.readline() # lese Inhalt zeilenweise in Listen Header = file.readline() data = file.readlines() for row in data: columns = row.split(";") # Trenne Zeilen bei ';' N.append(float(columns[1])) Werte = np.array([N]) # one try here: only gives me a set of 1s... c = (diff(sign(diff(Werte))) < 0).nonzero()[0] + 1 # local max print(c) 有没有人可以帮我找到正确的方法呢? 解决方法我想你正在寻找来自scipy.signal的argrelmax.它为您提供1d数组的相对最大值的索引.from scipy.signal import argrelmax t=linspace(-4,40,1000) y=sin(t) argrelmax(y)[0] 结果 [126 269 412 554 697 840 982] 获取值,使用 y[argrelmax(y)[0]] 编辑: 请注意,它不计算您域中极端的局部最大值. (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读