平滑数据中出现数据突变,相邻相减,再找出差值大于指定值的点
突变点位置: [49]
源码:
import numpy as np
import matplotlib.pyplot as plt
# 生成一维数据曲线
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 绘制平滑曲线
plt.plot(2, 1, 1)
plt.plot(x, y)
# 添加突变点
y[50:] += 0.5
# 绘制突变曲线
plt.plot(2, 1, 2)
plt.plot(x, y)
# 检测突变点
diff = np.diff(y)
change_points = np.where(diff > 0.5)[0]
if len(change_points) > 0:
print("突变点位置:", change_points)
else:
print("曲线没有突变点")
plt.show()