Numpy学习07-随机抽样

  • 随机抽样
  • 离散型随机变量
    • 二项分布
    • 泊松分布
    • 超几何分布
  • 连续型变量
    • 均匀分布
    • 正态分布
    • 指数分布
  • 其他随机函数
    • 随机从系列中抽取元素
    • 数据集洗牌操作
  • 作业
    • 1
    • 2

随机抽样

numpy.random.seed(seed=None) : 指定相同的seed会生成相同的随机数;若不指定则跟随时间差异不同。

离散型随机变量

二项分布

numpy.random.binomial(n, p, size=None)
表示对一个二项分布进行采样,size表示采样的次数,n表示做了n重伯努利试验,p表示成功的概率,函数的返回值表示n中成功的次数。

  • 期望:E(x) = np
  • 方差:Var(x) = np(1-p)

泊松分布

numpy.random.poisson(lam=1.0, size=None)
表示对一个泊松分布进行采样,size表示采样的次数,lam表示一个单位内发生事件的平均值,函数的返回值表示一个单位内事件发生的次数。

超几何分布

numpy.random.hypergeometric(ngood, nbad, nsample, size=None)
表示对一个超几何分布进行采样,size表示采样的次数,ngood表示总体中具有成功标志的元素个数,nbad表示总体中不具有成功标志的元素个数,ngood+nbad表示总体样本容量,nsample表示抽取元素的次数(小于或等于总体样本容量),函数的返回值表示抽取nsample个元素中具有成功标识的元素个数。

  • 均值E(x) = N(n/M)
  • 方差Var(x) = N(n/M)(1-n/M)((M-N)/(M-1))
  • 注释:考虑n次实验的超几何分布,令p=n/M,当总体容量足够大时((M-N)/(M-1))近似于1,此时数学期望为Np,方差为Np(1-p).

连续型变量

均匀分布

numpy.random.uniform(low=0.0, high=1.0, size=None))
样本均匀分布在lowhigh的区间内,左闭右开。
numpy.random.rand(d0, d1, ..., dn)
创建给定形状的数组,数值为[0,1)的均匀分布值。
numpy.random.randint(low, high=None, size=None, dtype='l')
返回指定形状,且均匀分布在[low,high)的整数值。
PS:若high = None 则均匀区间为 [0,low)

正态分布

numpy.random.randn(d0, d1, ..., dn)
返回指定形状的标准正态分布。

  • 期望:E(x) = 0
  • 方差:Var(x) = 1
    numpy.random.normal(loc=0.0, scale=1.0, size=None)

指数分布

numpy.random.exponential(scale=1.0, size=None)
返回指数分布的样本,其中scale = 1/lambda

其他随机函数

随机从系列中抽取元素

numpy.random.choice(a, size=None, replace=True, p=None)
从序列中获取元素,若a为整数,元素取值从 np.range(a) 中随机获取;若a为数组,取值从a数组元素中随机获取。该函数还可以控制生成数组中的元素是否重复replace,以及选取元素的概率p

数据集洗牌操作

numpy.random.shuffle(x)
对x进行重排序,如果x为多维数组,只沿第 0 轴洗牌,改变原来的数组,输出为None。

作业

1

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

np.random.uniform(low=5, high=10, size=(5,3))

结果:
array([[9.9973874 , 9.28787313, 6.85496697],
[5.83991473, 6.72219661, 7.15425454],
[9.47504519, 5.9979949 , 7.11424609],
[6.44275044, 5.2274057 , 7.13893918],
[7.54941722, 9.19651785, 8.7581823 ]])

2

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

# 训练数据
train = []
temp_x = np.random.uniform(low=-10, high=10, size=(5000))
def f(x):if(x==0):return 1else:return math.sin(x)/x
noise = np.random.uniform(low=-0.2, high=0.2,size=(5000))
temp_y = np.array(list(map(f, temp_x)))
temp_y += noise
train.append(temp_x)
train.append(temp_y)
# 测试数据
test = []
temp_x = np.sort(np.random.uniform(low=-10, high=10, size=(5000)))
def f(x):if(x==0):return 0else:return math.sin(x)/x
temp_y = np.array(list(map(f, temp_x)))
test.append(temp_x)
test.append(temp_y)
# 画图
plt.scatter(train[0],train[1],c='blue',marker='.',norm=0.3)
plt.plot(test[0],test[1],'g.-')
plt.show()

结果:

Numpy学习07-随机抽样相关推荐

  1. 深度学习-07(图像分类、常用数据集、利用CNN实现图像分类、图像分类优化)

    文章目录 深度学习-07(PaddlePaddle图像分类) 图像分类概述 概述 什么是图像分类 图像分类粒度 图像分类发展历程 图像分类问题的挑战 常用数据集介绍 MNIST数据集 CIFAR10数 ...

  2. Numpy学习笔记(下篇)

    目录 Numpy学习笔记(下篇) 一.Numpy数组的合并与分割操作 1.合并操作 2.分割操作 二.Numpy中的矩阵运算 1.Universal Function 2.矩阵运算 3.向量和矩阵运算 ...

  3. numpy 学习笔记

    numpy 学习笔记 导入 numpy 包 import numpy as np 声明 ndarray 的几种方法 方法一,从list中创建 l = [[1,2,3], [4,5,6], [7,8,9 ...

  4. NumPy学习笔记 一

    NumPy学习笔记 一 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

  5. python中ndarray对象实例化_Python数据分析之Numpy学习 2——NumPy 基础 ndarray对象

    Python数据分析之Numpy学习 2 -- NumPy 基础学习 NumPy(Numerical Python)是高性能科学计算和数据分析的基础包.NumPy的主要对象是同构数据多维容器(homo ...

  6. python数据分析基础教程 numpy_Python数据分析基础教程:NumPy学习指南(第2版)

    Python数据分析基础教程:NumPy学习指南(第2版) Ivan Idris (作者) 张驭宇 (译者) NumPy是一个优秀的科学计算库,提供了很多实用的数学函数.强大的多维数组对象和优异的计算 ...

  7. NumPy学习(索引和切片,合并,分割,copy与deep copy)

    NumPy学习(索引和切片,合并,分割,copy与deep copy) 目录 索引和切片合并分割 copy与deep copy 索引和切片 通过索引和切片可以访问以及修改数组元素的值 一维数组 程序示 ...

  8. python numpy读取数据_Python数据分析之numpy学习(一)

    文|刘顺祥 Python是一门不错的动态语言,其应用的领域非常广泛,如web开发.Linux运维.数据挖掘.机器学习.爬虫.推荐系统等.在学完<廖雪峰Python2.7教程>感觉受益匪浅, ...

  9. vim学习 07——跳转缩进

    vim学习 07--跳转缩进 查看文件信息 Ctrl + g 跳转 行号 + G : + 行号,然后回车 定位括号 光标移动到括号处,按下 % 键,快速跳转到对应的另一半括号((), [], {}) ...

最新文章

  1. python dataframe 计算上下两行的差值_用Python进行数据清洗!
  2. Glide 这样用,更省内存
  3. etcd分布式之负载均衡
  4. Java实现替换多个字符串中的参数
  5. 基于centos6.5搭建solr服务器
  6. 页面文字请使用css进行控制,css控制页面文字不能被选中user-select:none;
  7. document.body.scrollTop
  8. pyspark 手写Apriori算法
  9. 密码学笔记—栅栏密码
  10. linux命令行里输入nyancat,好玩的Linux命令行,与彩虹猫Nyan Cat一起休息下
  11. win10录屏_关于使用Win10自带录屏工具小技巧
  12. linux lsof详解
  13. C++:重定义:符号重定义:变量重定义(二):解决变量重定义(const static)
  14. 编程的技术|艺术|术术——面向开发者编程
  15. 内容超出DIV宽高后隐藏或出现滚动条和overflow的属性
  16. [2021-09-10] 【入门1】顺序结构——多行字符串的打印
  17. mysql约束表达式大全_SQL常用约束语句
  18. 2.4、PHP数组与数组结构
  19. js-运动总结(常见运动效果)
  20. ASP.NET实现将网页内容输出到WORD并下载到本地

热门文章

  1. 荣耀magic5pro参数配置
  2. 区块链能否助力版权“突围”?
  3. 广播动态注册和静态注册的区别
  4. HiveSql计算占比、同比、占环比
  5. 【前端框架】前端框架学习
  6. SpringBoot中出现 No qualifying bean of type ‘com.tanhua.server.mapper.UserInfoMapper‘ available: expect
  7. 计算机屏保是不是休眠,计算机上屏保、待机、休眠、睡眠、关机的区别
  8. XPS如何在线转Word格式
  9. Unity学习之Physic.Raycast(射线检测)个人理解分享
  10. Powerbi环比分析及其修正