python数据缩放

文章介绍了如何在不改变数据分布和形状的情况下,通过线性变换函数调整数据的y轴刻度。利用numpy和matplotlib库生成并可视化数据,然后定义了一个名为`Linear_transformation`的函数,将数据从一个区间映射到另一个区间,例如从原来的区间映射到(-5,5)或(-1000,1000),从而实现数据的缩放,以便于更好地在图表中展示。
摘要由CSDN通过智能技术生成

很多时候我们想对一个数据画图,这个数据的图的形状是我们需要的,但是y轴的刻度不对,可能大了或者小了,我们想不改变这个数据的分布和形状画出来的图的情况下,对这个数据进行一定程度的缩放,可以按照下面的方法来。


先导入包

import numpy as np
import matplotlib.pyplot as plt

我们先生成一组数据

# 生成y的值
x = np.linspace(-5, 5, 100)
y = 2 * x**3 - 3 * x**2 + 4 * x + 1
# 加噪声
noise = np.random.normal(0, 10, size=y.shape)
y_noisy = y + noise
# 绘制图形
plt.figure(figsize=(7,3))
plt.plot(y_noisy)
plt.show()

可以看到数据的折线图,形状大概是这样的。然后查看其取值区间

y_noisy.min(),y_noisy.max()

 

最小值和最大值的情况,y在这个区间里面,然后我们需要进行映射到另外一个区间里面去。


 映射公式

gpt告诉我的,很对,然后我把他写的代码改了一下,成为了下面这个缩放函数。

def Linear_transformation(y,interval=[-3,3]):
    y=np.array(y)
    y_min = y.min()  ;  y_max = y.max()
    a = interval[0]  ;  b = interval[-1]
    y_new = (b-a)*(y-y_min)/(y_max-y_min)+a
    return y_new

 # 假设y要映射到(-5,5)

y_new=Linear_transformation(y_noisy,interval=[-5,5])
y_new

画图查看 

plt.figure(figsize=(7,3))
plt.plot(y_new)
plt.show()

 

 可以很清楚的看到,数据明显形状和原来是一模一样的,但是y轴变了,变成了-5到5的区间里面了。

想放大也是可以的,比如放大到-1000到1000里面去

plt.figure(figsize=(7,3))
plt.plot(Linear_transformation(y_noisy,interval=[-1000,1000]))
plt.show()

很好用。这样再也不用担心画图的时候数据范围不对的问题了...... 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阡之尘埃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值