[英]find local maximum in a column of a text file [closed]
我有一个包含两行的文本文件。 我想找到第一行的局部最大值。 我正在尝试下面的代码,但我不知道为什么会收到此错误:“ x
必须是一维数组”
f= open ('ttt.txt', 'r')
data = f.readlines()
for line in data:
c=line.split(' ')[0]
d=float (c)
a= np.array (d)
peaks, _ = find_peaks(a, height=0)
输入是这样的:
0 5
1 5
2 5
3 6
1 6
0 7
0 6
0.01 5
0.4 5
0.001 5
0.3 6
0.7 6
1.5 7
4 6
2 5
0.1 6
0 6
输出应为:
3 6
0.4 5
4 6
a
应该是列表,但是,您未在创建列表。
f = open ('ttt.txt', 'r')
data = f.readlines()
a = [float(line.split()[0]) for line in data]
a = np.array(a)
peaks, _ = find_peaks(a, height=0)
您可以使用argrelextrema
从scipy.signal
。 它返回数组中的索引。
另外,要从文件加载数据,可以使用numpy.loadtxt
。 它以numpy
数组返回数据(可以使用)。
这里的代码:
# Import modules
import numpy as np
from scipy.signal import argrelextrema
# Load the data from text file
data = np.loadtxt('ttt.txt')
# Get local maxima from the first column
index = argrelextrema(data[:, 0], np.greater)
print(index)
# (array([ 3, 8, 13], dtype=int64),)
print(data[index])
# [[3. 6. ]
# [0.4 5. ]
# [4. 6. ]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.