zoukankan      html  css  js  c++  java
  • python中的随机数函数

    python中的随机函数有很多,很容易混淆,这里总结一下。主要参考自:https://blog.csdn.net/brucewong0516/article/details/79011562

    python中常用的随机函数有:1)np.random.rand;2)np.random.randint;3)np.random.randn;4)np.random.random。

    1. np.random.rand(d0, d1, ..., dn)

    根据给定维度生成[0,1)之间的数据,包含0,不包含1。其中dn表示每个维度的大小,n表示维度的个数。返回值为指定维度的array。

    举例:

     1 import numpy as np
     2 
     3 x = np.random.rand(3, 2)
     4 print(x.shape)
     5 print(x)
     7 
     8 '''
     9 输出结果:
    10 (3, 2)
    11 [[0.55911292 0.5242528 ]
    12  [0.15812263 0.88402055]
    13  [0.50265009 0.65779738]]
    14 '''

    2. np.random.randn(d0, d1, …, dn)

    randn函数返回一个或一组样本,具有标准正态分布,均值为0,标准差为1。其中dn表示每个维度的大小,n表示维度的个数。返回值为指定维度的array。

    举例:

     1 import numpy as np
     2 
     3 x = np.random.randn(3, 2)
     4 print(x.shape)
     5 print(x)
     6 
     7 '''
     8 输出结果:
     9 (3, 2)
    10 [[-0.81758026 -0.0527769 ]
    11  [ 0.36913285  1.67281363]
    12  [ 0.83645057 -0.54296909]]
    13 '''

    3. np.random.randint(low[, high, size])

    返回随机整数,范围区间为[low,high),包含low,不包含high。其中low为最小值,high为最大值,size为数组维度大小,dtype为数据类型,默认的数据类型是np.int。high没有填写时,默认生成随机数的范围是[0,low)。

     1 import numpy as np
     2 
     3 x = np.random.randint(3)
     4 print(x)
     5 # 1
     6 
     7 x = np.random.randint(1,5)
     8 print(x)
     9 # 3
    10 
    11 x = np.random.randint(3, size=5)
    12 print(x)
    13 # [0 1 2 2 0]
    14 
    15 x = np.random.randint(3, size=[2, 2])
    16 print(x)
    17 '''
    18 [[2 0]
    19  [0 1]]
    20 '''

    4. np.random.random([size])

    生成[0,1)之间的浮点数,与np.random.rand()功能类似。举例:

    1 import numpy as np
    2 
    3 x = np.random.random(size=[2, 2])
    4 print(x)
    5 '''
    6 [[0.94329549 0.93561065]
    7  [0.33493102 0.67862068]]
    8 '''
    • numpy.random.random_sample(size=None)
    • numpy.random.ranf(size=None)
    • numpy.random.sample(size=None)

    上面三个函数同样具有类似的功能。

    5. np.random.choice(a[, size, replace, p])

    从一个给定的一维数组,生成一个随机样本.

    参数: a为一维数组类似数据或整数;size为数组维度;repalce参数为是否可以重复,当设置为FALSE时,不能出现重复的数据;p为数组中的数据出现的概率。

    a为整数时,对应的一维数组为np.arange(a)。

     1 import numpy as np
     2 
     3 '''
     4 第一个参数值5对应的a,即传入的数据组
     5 第二个参数3就是数组的size,传入单值时,数据维度是一维的
     6 此处将生成一个一维数据包含3个小于5的整数的数组
     7 '''
     8 x = np.random.choice(5, 3)
     9 print(x)
    10 #[4 0 4]
    11 
    12 #给数组中每个数据出现的概率赋值
    13 x = np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
    14 print(x)
    15 #[3 2 2]
    16 
    17 #repalce参数为是否可以重复,当设置为FALSE时,不能出现重复的数据
    18 x = np.random.choice(5, 4, replace=False)
    19 print(x)
    20 #[2 4 1 0]
    21 
    22 #也可以传入非数字、字符串的数组
    23 demo_list = ['lenovo', 'sansumg','moto','xiaomi', 'iphone']
    24 x = np.random.choice(demo_list,size=(3,3))
    25 print(x)
    26 '''
    27 [['sansumg' 'sansumg' 'xiaomi']
    28  ['sansumg' 'iphone' 'sansumg']
    29  ['lenovo' 'xiaomi' 'lenovo']]
    30 '''

    6. np.random.seed()

    生成随机数的种子,使得每次生成随机数相同。当我们设置相同的seed,每次生成的随机数相同。如果不设置seed,则每次会生成不同的随机数。

    举例:

     1 import tensorflow as tf
     2 import numpy as np
     3 from sklearn.utils import check_random_state
     4 
     5 x = np.random.randint(0, 10)
     6 print(x)
     7 # 8
     8 
     9 x = np.random.randint(0, 10)
    10 print(x)
    11 # 9
    12 
    13 np.random.seed(0)
    14 x = np.random.randint(0, 10)
    15 print(x)
    16 # 5
    17 
    18 np.random.seed(0)
    19 x = np.random.randint(0, 10)
    20 print(x)
    21 # 5
  • 相关阅读:
    .editorconfig
    每日日报
    每日日报
    每日日报
    每日日报
    每日日报
    《大道至简》读后感
    每日日报
    每日日报
    每日日报
  • 原文地址:https://www.cnblogs.com/piaojianxue/p/10824477.html
Copyright © 2011-2022 走看看