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

import numpy as np

1 numpy.random.rand()

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

  • rand函数根据给定维度生成[0,1)之间的数据,包含0,不包含1
  • dn表格每个维度
  • 返回值为指定维度的array
np.random.rand(4,2)
  1.  
    array([[ 0.02173903, 0.44376568],
  2.  
    [ 0.25309942, 0.85259262],
  3.  
    [ 0.56465709, 0.95135013],
  4.  
    [ 0.14145746, 0.55389458]])
np.random.rand(4,3,2) # shape: 4*3*2
  1.  
    array([[[ 0.08256277, 0.11408276],
  2.  
    [ 0.11182496, 0.51452019],
  3.  
    [ 0.09731856, 0.18279204]],
  4.  
     
  5.  
    [[ 0.74637005, 0.76065562],
  6.  
    [ 0.32060311, 0.69410458],
  7.  
    [ 0.28890543, 0.68532579]],
  8.  
     
  9.  
    [[ 0.72110169, 0.52517524],
  10.  
    [ 0.32876607, 0.66632414],
  11.  
    [ 0.45762399, 0.49176764]],
  12.  
     
  13.  
    [[ 0.73886671, 0.81877121],
  14.  
    [ 0.03984658, 0.99454548],
  15.  
    [ 0.18205926, 0.99637823]]])

2 numpy.random.randn()

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

  • randn函数返回一个或一组样本,具有标准正态分布。
  • dn表格每个维度
  • 返回值为指定维度的array
np.random.randn() # 当没有参数时,返回单个数据
-1.1241580894939212
np.random.randn(2,4)
  1.  
    array([[ 0.27795239, -2.57882503, 0.3817649 , 1.42367345],
  2.  
    [-1.16724625, -0.22408299, 0.63006614, -0.41714538]])
np.random.randn(4,3,2)
  1.  
    array([[[ 1.27820764, 0.92479163],
  2.  
    [-0.15151257, 1.3428253 ],
  3.  
    [-1.30948998, 0.15493686]],
  4.  
     
  5.  
    [[-1.49645411, -0.27724089],
  6.  
    [ 0.71590275, 0.81377671],
  7.  
    [-0.71833341, 1.61637676]],
  8.  
     
  9.  
    [[ 0.52486563, -1.7345101 ],
  10.  
    [ 1.24456943, -0.10902915],
  11.  
    [ 1.27292735, -0.00926068]],
  12.  
     
  13.  
    [[ 0.88303 , 0.46116413],
  14.  
    [ 0.13305507, 2.44968809],
  15.  
    [-0.73132153, -0.88586716]]])

标准正态分布介绍

  • 标准正态分布—-standard normal distribution
  • 标准正态分布又称为u分布,是以0为均值、以1为标准差的正态分布,记为N(0,1)。

3 numpy.random.randint()

3.1 numpy.random.randint()

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

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

3.2 numpy.random.random_integers

numpy.random.random_integers(low, high=None, size=None)

  • 返回随机整数,范围区间为[low,high],包含low和high
  • 参数:low为最小值,high为最大值,size为数组维度大小
  • high没有填写时,默认生成随机数的范围是[1,low]

该函数在最新的numpy版本中已被替代,建议使用randint函数

np.random.random_integers(1,size=5)
array([1, 1, 1, 1, 1])

4 生成[0,1)之间的浮点数

  • numpy.random.random_sample(size=None)
  • numpy.random.random(size=None)
  • numpy.random.ranf(size=None)
  • numpy.random.sample(size=None)
  1.  
    print('-----------random_sample--------------')
  2.  
    print(np.random.random_sample(size=(2,2)))
  3.  
    print('-----------random--------------')
  4.  
    print(np.random.random(size=(2,2)))
  5.  
    print('-----------ranf--------------')
  6.  
    print(np.random.ranf(size=(2,2)))
  7.  
    print('-----------sample--------------')
  8.  
    print(np.random.sample(size=(2,2)))
  1.  
    -----------random_sample--------------
  2.  
    [[ 0.34966859 0.85655008]
  3.  
    [ 0.16045328 0.87908218]]
  4.  
    -----------random--------------
  5.  
    [[ 0.25303772 0.45417512]
  6.  
    [ 0.76053763 0.12454433]]
  7.  
    -----------ranf--------------
  8.  
    [[ 0.0379055 0.51288667]
  9.  
    [ 0.71819639 0.97292903]]
  10.  
    -----------sample--------------
  11.  
    [[ 0.59942807 0.80211491]
  12.  
    [ 0.36233939 0.12607092]]

5 numpy.random.choice()

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

  • 从给定的一维数组中生成随机数
  • 参数: a为一维数组类似数据或整数;size为数组维度;p为数组中的数据出现的概率
  • a为整数时,对应的一维数组为np.arange(a)
np.random.choice(5,3)
array([4, 1, 4])
  1.  
    np.random.choice(5, 3, replace=False)
  2.  
    # 当replace为False时,生成的随机数不能有重复的数值
array([0, 3, 1])
np.random.choice(5,size=(3,2))
  1.  
    array([[1, 0],
  2.  
    [4, 2],
  3.  
    [3, 3]])
  1.  
    demo_list = ['lenovo', 'sansumg','moto','xiaomi', 'iphone']
  2.  
    np.random.choice(demo_list,size=(3,3))
  1.  
    array([['moto', 'iphone', 'xiaomi'],
  2.  
    ['lenovo', 'xiaomi', 'xiaomi'],
  3.  
    ['xiaomi', 'lenovo', 'iphone']],
  4.  
    dtype='<U7')
  • 参数p的长度与参数a的长度需要一致;
  • 参数p为概率,p里的数据之和应为1
  1.  
    demo_list = ['lenovo', 'sansumg','moto','xiaomi', 'iphone']
  2.  
    np.random.choice(demo_list,size=(3,3), p=[0.1,0.6,0.1,0.1,0.1])
  1.  
    array([['sansumg', 'sansumg', 'sansumg'],
  2.  
    ['sansumg', 'sansumg', 'sansumg'],
  3.  
    ['sansumg', 'xiaomi', 'iphone']],
  4.  
    dtype='<U7')

6 numpy.random.seed()

  • np.random.seed()的作用:使得随机数据可预测。
  • 当我们设置相同的seed,每次生成的随机数相同。如果不设置seed,则每次会生成不同的随机数
  1.  
    np.random.seed(0)
  2.  
    np.random.rand(5)
array([ 0.5488135 ,  0.71518937,  0.60276338,  0.54488318,  0.4236548 ])
  1.  
    np.random.seed(1676)
  2.  
    np.random.rand(5)
array([ 0.39983389,  0.29426895,  0.89541728,  0.71807369,  0.3531823 ])
  1.  
    np.random.seed(1676)
  2.  
    np.random.rand(5)
array([ 0.39983389,  0.29426895,  0.89541728,  0.71807369,  0.3531823 ])    
转:https://blog.csdn.net/u012149181/article/details/78913167

[转]numpy.random.randn()用法的更多相关文章

  1. numpy.random模块用法总结

    from numpy import random numpy.random.uniform(low=0.0, high=1.0, size=None) 生出size个符合均分布的浮点数,取值范围为[l ...

  2. numpy.random模块用法小结

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9751471.html 1.np.random.random()函数参数 np.random.r ...

  3. numpy.random.randn()与numpy.random.rand()的区别(转)

    numpy中有一些常用的用来产生随机数的函数,randn()和rand()就属于这其中. numpy.random.randn(d0, d1, …, dn)是从标准正态分布中返回一个或多个样本值. n ...

  4. numpy.random.randn()与rand()的区别【转】

    本文转载自:https://blog.csdn.net/u010758410/article/details/71799142 numpy中有一些常用的用来产生随机数的函数,randn()和rand( ...

  5. 【转】numpy.random.randn()与rand()的区别

    转自: https://blog.csdn.net/u010758410/article/details/71799142 numpy中有一些常用的用来产生随机数的函数,randn()和rand()就 ...

  6. numpy.random.randn()和numpy.random.rand()

    1 numpy.random.rand() (1)numpy.random.rand(d0,d1,…,dn) rand函数根据给定维度生成[0,1)之间的数据,包含0,不包含1 dn表格每个维度 返回 ...

  7. numpy.random.randn()与numpy.random.rand()的区别

    numpy中有一些常用的用来产生随机数的函数,randn()和rand()就属于这其中. numpy.random.randn(d0, d1, …, dn)是从标准正态分布中返回一个或多个样本值. n ...

  8. Python中numpy.random.randn()与rand(),numpy.zeros、ones、eye

    转自:https://blog.csdn.net/u010758410/article/details/71799142

  9. np.random.random()函数 参数用法以及numpy.random系列函数大全

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9751471.html 1.np.random.random()函数参数 np.random.r ...

随机推荐

  1. stl_tree.h/insert_unique()

    // 安插新值:節點鍵值不允許重複,若重複則安插無效. // 注意,傳回值是個pair,第一元素是個 RB-tree 迭代器,指向新增節點, // 第二元素表示安插成功與否. template < ...

  2. Pytorch 多 GPU 并行处理机制

    Pytorch 的多 GPU 处理接口是 torch.nn.DataParallel(module, device_ids),其中 module 参数是所要执行的模型,而 device_ids 则是指 ...

  3. springboot2多数据源完整示例

    springboot2 + mybatis + mysql + oracle + sqlserver多数据源的配置 相信很多朋友在开发的时候,可能会碰到需要一个项目,配置多个数据源的需求,可能是同一种 ...

  4. JPA进行insert操作时会首先select吗

    在某个项目中,使用JPA的saveAll方法去批量写入数据时,通过打印sql,发现每次insert前都会先select一次,极大的浪费了写入性能. 分析一下代码,saveAll() @Transact ...

  5. tomcat access日志

    每次看access log都会记不住pattern里的各个标识代表的什么意思,记录下,备忘! tomcat的access log是由实现了org.apache.catalina.AccessLog接口 ...

  6. Python--day37--守护进程和几个常用的方法

    1,p.daemon = True #设置子进程为守护进程 #守护进程会随着主进程的代码执行完毕 而结束 #子进程 --> 守护进程 import time from multiprocessi ...

  7. linux设备驱动文件结构

    struct file, 定义于 <linux/fs.h>, 是设备驱动中第二个最重要的数据结构. 注意 file 与用户空间程序的 FILE 指针没有任何关系. 一个 FILE 定义在 ...

  8. WPF 从零开始开发 dotnet Remoting 程序

    本文告诉大家如何不使用框架,从零开始开发一个 dotnet remoting 程序 在我的另一篇博客 WPF 使用RPC调用其他进程 就大概告诉了大家如何在 WPF 使用 dotnet remotin ...

  9. MVC,MVP,MVVM基本原理

    MVC,MVP,MVVM基本原理 模式与框架,其诞生就是为了解决日益复杂的事务处理 当同一问题不断出现,人们就会总结细分出相应的问题解决办法 当需求变得庞大的时候,就会出现细分,在细分的过程中就会出现 ...

  10. 2018.11.9浪在ACM集训队第四次测试赛

    2018.11.9浪在ACM集训队第四次测试赛 整理人:朱远迪 A 生活大爆炸版 石头剪刀布           参考博客:[1] 刘凯 B 联合权值            参考博客: [1]田玉康 ...