感谢scipy.org

在近期的tensorflow学习中,我发现,numpy作为python的数学运算库,学习tensorflow过程中经常需要用到,而numpy的random函数功能很多,每次用的时候都需要另行google,所以我决定将它的常用用法汇总一下。

0. first of all

import numpy as numpy

既然是讲随机数,众所周知,计算机世界的随机数都是伪随机,都有一个叫做种子(seed)的东西

numpy.random.seed(seed=None)

可以通过输入int或arrat_like来使得随机的结果固定

>>> np.random.rand(3, 3)array([[0.43267997, 0.72368429, 0.72366367],[0.28496145, 0.44920635, 0.8924199 ],[0.31974178, 0.55658518, 0.01755763]])>>> np.random.rand(3, 3)array([[0.75196574, 0.33708946, 0.64345504],[0.85048542, 0.18109553, 0.69524277],[0.06390142, 0.30589554, 0.51643863]])>>> np.random.seed(5)
>>> np.random.rand(3, 3)array([[0.22199317, 0.87073231, 0.20671916],[0.91861091, 0.48841119, 0.61174386],[0.76590786, 0.51841799, 0.2968005 ]])>>> np.random.seed(5)
>>> np.random.rand(3, 3)rray([[0.22199317, 0.87073231, 0.20671916],[0.91861091, 0.48841119, 0.61174386],[0.76590786, 0.51841799, 0.2968005 ]])

1. numpy.random.rand()

numpy.random.rand(d0,d1...dn)

  • rand函数根据给定维度生成半开区间[0,1)之间的数据,包含0,不包含1
  • dn表示每个维度
  • 返回值为指定纬度的numpy.ndarray
>>> np.random.rand(3, 3) # shape: 3*3array([[0.94340617, 0.96183216, 0.88510322],[0.44543261, 0.74930098, 0.73372814],[0.29233667, 0.3940114 , 0.7167332 ]])>>> np.random.rand(3, 3, 3) # shape: 3*3*3array([[[0.64794467, 0.17450186, 0.01016758],[0.36435826, 0.37682548, 0.19501414],[0.26438152, 0.28520726, 0.01617747]],[[0.43803165, 0.4096238 , 0.77309074],[0.42280405, 0.02623488, 0.82081416],[0.7611891 , 0.84823656, 0.64481959]],[[0.24420439, 0.62015463, 0.13258205],[0.87108689, 0.14997182, 0.43524276],[0.58190788, 0.32348629, 0.12158832]]])

2. np.random.randn()

numpy.random.randn(d0,d1,…,dn)

  • randn函数返回一个或一组样本,具有标准正态分布。
  • dn表示每个维度
  • 返回值为指定维度的numpy.ndarray
>>> np.random.randn() # 当没有输入参数时,仅返回一个值-0.7377941002942127>>> np.random.randn(3, 3)array([[-0.20565666,  1.23580939, -0.27814622],[ 0.53923344, -2.7092927 ,  1.27514363],[ 0.38570597, -1.90564739, -0.10438987]])>>> np.random.randn(3, 3, 3)array([[[ 0.64235451, -1.64327647, -1.27366899],[ 0.69706885,  0.75246699,  2.16235763],[ 1.01141338, -0.19188666,  0.07684428]],[[ 1.34367043, -0.76837057,  0.27803575],[ 0.97007349,  0.41297538, -1.65008923],[-3.78282033,  0.67567421, -0.0753552 ]],[[-0.86540385,  0.14603592,  0.29318291],[-0.8167798 , -0.25492782, -0.58758   ],[ 0.02612474,  0.17882535, -0.95483945]]])

3. numpy.random.randint()

numpy.random.randint(low, high=None, size=None, dtype=’l’)

  • 从区间[low,high)返回随机整形
  • 参数:low为最小值,high为最大值,size为数组维度大小,dtype为数据类型,默认的数据类型是np.int
  • high没有填写时,默认生成随机数的范围是[0,low)
>>> np.random.randint(1, size = 10) # 返回[0, 1)之间的整数,所以只有0array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])>>> np.random.randint(1, 5) # 返回[1, 5)之间随机的一个数字2>>> np.random.randint(-3, 3, size=(3, 3))array([[-1, -2, -2],[-3, -1, -2],[ 2,  2,  2]])

4. numpy.random.random_sample()

numpy.random.random_sample(size=None)

  • 从[0.0, 1.0)的半开区间返回浮点数
>>> np.random.random_sample()0.47108547995356098>>> np.random.random_sample((5,))array([ 0.30220482,  0.86820401,  0.1654503 ,  0.11659149,  0.54323428])>>> 5 * np.random.random_sample((3, 2)) - 5array([[-3.99149989, -0.52338984],[-2.99091858, -0.79479508],[-1.23204345, -1.75224494]])

类似功能的还有:
numpy.random.random(size=None)
numpy.random.ranf(size=None)
numpy.random.sample(size=None)

5. numpy.random.choice() ✡️

numpy.random.choice(a, size=None, replace=True, p=None)

  • 从给定的一位数组中生成一个随机样本
  • a要求输入一维数组类似数据或者是一个int;size是生成的数组纬度,要求数字或元组;replace为布尔型,决定样本是否有替换;p为样本出现概率
>>> np.random.choice(5, 3) # 这个等同于np.random.randint(0,5,3)array([0, 3, 4])>>> np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])array([3, 3, 0])>>> np.random.choice(5, 3, replace=False)array([3,1,0])>>> np.random.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0])array([2, 3, 0])>>> aa_milne_arr = ['pooh', 'rabbit', 'piglet', 'Christopher']
>>> np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3])array(['pooh', 'pooh', 'pooh', 'Christopher', 'piglet'],dtype='|S11')

感谢您的阅读?

numpy-random函数相关推荐

  1. numpy.random函数整合(部分)

    在我们进行python数据分析的学习和应用过程中,经常需要用到numpy的随机函数,由于随机函数random的功能比较多,经常会混淆或记不住,下面由我进行一部分的总结 1.numpy.random.r ...

  2. python基础--numpy.random

    # *_*coding:utf-8 *_* # athor:autoimport numpy.random#rand(d0, d1, ..., dn)n维随机值data0 = numpy.random ...

  3. Numpy 常用函数

    1.NumPy NumPy是高性能科学计算和数据分析的基础包.部分功能如下: ndarray, 具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组. 用于对整组数据进行快速运算的标准数学函数(无 ...

  4. numpy常用函数之random.normal函数

    numpy常用函数之random.normal函数 4.np.random.normal(loc=0.0, scale=1.0, size=None) 作用:    生成高斯分布的概率密度随机数 lo ...

  5. numpy.random随机数模块常用函数总结

    np.random.uniform 生成固定范围的随机数 numpy.random.uniform(low,high,size) 功能:从一个均匀分布[low,high)中随机采样,注意定义域是左闭右 ...

  6. numpy.random模块常用函数

    在Numpy库中,常用使用np.random.rand().np.random.randn()和np.random.randint()随机函数. 1. np.random.randn()函数 作用:返 ...

  7. 【numpy】numpy.random.uniform()函数

    [汇总]numpy里的一些函数 numpy.random.uniform() numpy.random.uniform(low,high,size) low: 采样下界,float类型,默认值为0: ...

  8. np.randon模块,numpy.random模块各函数功能详解,分类描述各个函数功能,生成随机数

    因为网上很多文章都是在依次列举各个函数的功能,并没有做分类,所以记忆上还有使用上都不方便. 本文旨在将功能相似的函数放在一起,以及对它们进行辨析和区分,便于精准地调用.未完待续 最权威的参考来源:Ra ...

  9. python中numpy.random.gamma()函数

    python中numpy.random.gamma()函数 根据官网,地址如下: https://www.w3cschool.cn/doc_numpy_1_11/numpy_1_11-generate ...

  10. numpy.random.normal函数

    对于numpy.random.normal函数,有三个参数(loc, scale, size),分别l代表生成的高斯分布的随机数的均值.方差以及输出的size.我想让loc和scale分别为(1, 2 ...

最新文章

  1. 福建工程学院计算机科学类投档线,2019年福建工程学院美术类本科专业投档分数线...
  2. 竞赛比完,代码、模型怎么处理?Kaggle 大神:别删,这都是宝藏
  3. 3 calender python_python3笔记二十一:时间操作datetime和calendar
  4. php的全局p变量程序_php如何定义全局变量
  5. [HEOI2012] 朋友圈(最大团 + 结论 + 二分图 + 网络流)
  6. C++ 指针函数和函数指针
  7. 2020年A股IPO市场全景回顾与2021年前景展望报告
  8. geoserver 3_使用GeoServer 和 mapbox-gl 搭建离线地图服务
  9. 夏侯南溪搭建目标检测模型——数据读取篇
  10. 天才少年创世纪:从创建应用程序,到被哈佛录取、登上头条
  11. 基于R语言的Meta分析【全流程、不确定性分析】方法与Meta机器学习
  12. HTML与CSS实现淘宝静态页面(参考版)
  13. 七年级计算机上册知识树,七年级上知识树.doc
  14. supervise进程管理利器
  15. 【VUE项目实战】42、添加商品分类功能(三)
  16. TFT-LCD电路设计之时序控制电路(TCON)
  17. rabbitMQ概述/在springboot下测试五种模式
  18. Java基础 - 第一章 计算
  19. 5、隐私计算--同态加密
  20. 这应该是第一篇写拼多多商业模式的文章吧

热门文章

  1. ActivityRecord、TaskRecord、ActivityStack相互关系以及Activity启动模式
  2. NDK相关概念与NDK开发步骤
  3. php 大牛生小牛,C#算法之关于大牛生小牛的问题
  4. python 线性回归 统计检验 p值_SPSS 25 数学统计分析工具
  5. Android之Android触摸事件传递机制
  6. swift_034(Swift 动态库/静态库区别)
  7. (0002) iOS 开发之开发者iOS 10 正式版体验报告
  8. kettle分批处理大表数据_kettle-批量同步表数据
  9. docker仓库harbor搭建
  10. 红米 Note3 (kenzo)刷入 Lineage OS