我是
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]]
编辑:
请注意,它不计算您域中极端的局部最大值.