python使曲线变得平滑_如何在Python中平滑数据?

在您的特定情况下,您还可以尝试将np.linspace函数的最后一个参数更改为较小的数字np.linspace(x[0], x[-1], 10)。

演示代码:import matplotlib.pyplot as plt

import numpy as np

from scipy import interpolate

data = np.random.rand(100,2)

tempx = list(data[:, 0])

tempy = list(data[:, 1])

x = np.array(sorted([point*10 + tempx.index(point) for point in tempx]))

y = np.array([point*10 + tempy.index(point) for point in tempy])

x_int = np.linspace(x[0], x[-1], 10)

tck = interpolate.splrep(x, y, k = 3, s = 1)

y_int = interpolate.splev(x_int, tck, der = 0)

fig = plt.figure(figsize = (5.15,5.15))

plt.subplot(111)

plt.plot(x, y, marker = 'o', linestyle='')

plt.plot(x_int, y_int, linestyle = '-', linewidth = 0.75, color='k')

plt.xlabel("X")

plt.ylabel("Y")

plt.show()

你也可以用熊猫的滚动平均值来平滑数据:import pandas as pd

data = [...(your data here)...]

smoothendData = pd.rolling_mean(data,5)

滚动平均的第二个参数是移动平均(滚动平均)周期。也可以将数据“data.reverse”反转,以这种方式获取数据的滚动平均值,并将其与前向滚动平均值组合。另一种选择是指数加权移动平均:

Pandas: Exponential smoothing function for column

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值