Man*_*oon 7 python numpy matplotlib pandas
我一天中每隔大约 1 分钟就有噪音数据。
这是一个简单的版本:
如何识别以黄色标记的噪声较小和较低值时段的开始和结束索引值?
这是测试数据:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
arr = np.array([8,9,7,3,6,3,2,1,2,3,1,2,3,2,2,3,2,2,5,7,8,9,15,20,21])
plt.plot(arr)
plt.show()
Run Code Online (Sandbox Code Playgroud)
好吧,如果您只想要那个“区域”,那么您需要某种方法来查找特定范围内的点。我们怎样才能做到这一点?好吧,我们可能应该首先找到数组的最小值,然后找到同一数组中落在指定偏差内的其他值:
def lows(arr, dev=0):
lim = min(arr) + dev
pts = []
for i,e in enumerate(arr):
if e <= lim:
pts.append((i,e))
return pts
Run Code Online (Sandbox Code Playgroud)
上面的函数返回落在指定范围内的点的列表。下限是输入数组的最小值,上限是最小值加上您将提供的偏差。例如,如果您想要最小值 1 以内的所有点:
plt.plot(arr)
for pt in lows(arr, 1):
circle = plt.Circle(pt, 0.2, color='g')
plt.gca().add_patch(circle)
plt.show()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
690 次 |
| 最近记录: |