Numpy学习——随机抽样

这篇博客介绍了如何使用Numpy创建一个5×3的二维数组,填充5到10之间的随机数,并构建了包含5000个数据点的训练集和测试集。进一步,博主模拟了一个函数y(x),其在x=1处有一个奇异点,并在(-10,10)区间内通过均匀随机分布的x进行定义。训练集添加了[-0.2,0.2]范围内的均匀噪声,而测试集保持无噪声,以模拟真实的回归问题。" 109340493,10049137,程序设计第四章:选择结构深入解析,"['程序设计', '逻辑运算', '条件语句', '嵌套结构', '关系运算']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Numpy学习——随机抽样

创建一个形为5×3的二维数组,以包含5到10之间的随机数

import numpy as np
from matplotlib import pyplot as plt
np.random.seed(20201125)  # 设置随机数种子
array_2d = np.random.uniform(low=5, high=10, size=(5, 3))  # 生成2维数组
print(array_2d)
[[9.04907965 5.17898621 6.03373286]
 [9.71288485 8.12069443 5.06154747]
 [6.56454777 5.25362105 7.39799186]
 [8.6666706  6.1580927  9.67474644]
 [8.39923643 6.77485464 7.81353644]]

创建分别具有5000个数据的训练集和测试集。

模拟
y(x)={sin⁡(x)x,x≠1,1,x=1. y(x)= \begin{cases} \begin{array}{lcl} \cfrac{\sin(x)}{x}&,&x\ne1,\\ 1&,&x=1. \end{array} \end{cases} y(x)=xsin(x)1,,x=1,x=1.

其中xxx在间隔(-10,10)上均匀随机分布。为了使回归问题“真实”,大的均匀噪声分布在[-0.2,0.2]已添加到所有训练样本中,同时测试数据保持无噪声。

noise = np.random.uniform(low=-0.2, high=0.2, size=5000)  # 生成噪声
train_X = np.random.uniform(low=-10, high=10, size=5000)  # 生成训练集X
train_Y = np.sin(train_X)/train_X+noise  # 训练集Y加上噪声
test_X = np.random.uniform(low=-10, high=10, size=5000)  # 生成测试集X
test_Y = np.sin(test_X)/test_X  # 测试集Y
plt.rcParams['figure.figsize'] = (12, 8)  # 设定画板大小
plt.scatter(train_X, train_Y, s=0.1, label='Expected')  # 画散点图
plt.scatter(test_X, test_Y, s=0.1, label='Actual')
plt.legend()  # 显示图例
plt.show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值