我是
Python的新手,我有一个问题,我找不到解决的问题…希望有人可以提供帮助:
我需要获取从csv文件导入的数据集的所有本地最大值的列表.
值的范围从0到0.5左右.
我需要获取从csv文件导入的数据集的所有本地最大值的列表.
值的范围从0到0.5左右.
我只需要获取一个数据行(“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]]
编辑:
请注意,它不计算您域中极端的局部最大值.