numpy.random

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了numpy.random相关的知识,希望对你有一定的参考价值。

参考技术A numpy中利用random类获取随机数.

1、numpy.random.random()  生成一个随机的浮点数

     默认为生成一个随机的浮点数,范围是在0.0~1.0之间,也可以通过参数size设置返回数据的size;

  1)生成一个随机的浮点数:

      n = numpy.random.random()

      print(n)  

      输出:0.429489486421

  2)设置参数size:

      n = numpy.random.random(size=(3, 2))

      print (n)     

      输出:  [[ 0.32018625  0.22410508]

                    [ 0.57830333  0.74477335]

                    [ 0.08333105  0.48533304]]

2、numpy.random.randint() 生成一个随机整数

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

    print(np.random.randint(8))                        输出4

    print (np.random.randint(5, size=3))          输出[1 1 3]

    print (np.random.randint(6, size=(3,2)))    输出[[2 4]

                                                                                  [5 4]

                                                                                  [3 0]]

    print (np.random.randint(low=5, high=10, size=3))  输出[7 5 5]

3、numpy.random.normal()  生成高斯分布随机数

    normal(loc=0.0, scale=1.0, size=None)

    loc:均值,scale:标准差,size:抽取样本的size

    n = numpy.random.normal(loc=0.0, scale=1, size=(2, 3))

    print(n)

    [[-0.15040995 -0.43780718 -0.22292445]

      [-0.89388124 -0.39465164  0.24113838]]

4、numpy.random.randn() 生成标准正态分布随机数

    numpy.random.randn(d0, d1, …, dn)函数:

    从标准正态分布中返回一个(d0*d1* …* dn)维样本值

    import numpy as np

    print(np.random.randn(4, 2))

    [[-1.88753851 -2.54412195]

    [ 0.51856343 -1.07733711]

    [ 1.05820592 -0.23889217]

    [ 0.73309062  0.42152066]]

    例2:

    import numpy as np

    print(np.random.randn(4, 2, 3))

    输出:

    [[[-1.00477835  1.16919912 -1.28299362]

      [ 0.0645336  0.19143397 -0.16957401]]

      [[-1.45250491 -0.51844037 -0.01241654]

      [ 0.41427599  0.19469926 -0.92450654]]

      [[-1.90133606  1.23554382 -1.37775698]

      [-0.98110245  0.3562373  -0.27816068]]

      [[ 1.0380202  0.24293181  0.5341542 ]

      [-0.62945999  1.62233629 -0.07299065]]]

5、numpy.random.rand() 生成[0, 1)间随机数

    numpy.random.rand(d0, d1, …, dn)函数:

    生成一个(d0*d1* …* dn)维位于[0, 1)中随机样本

    例:

    import numpy as np

    print np.random.rand(2,3)

    输出:

    [[ 0.06112299  0.02476706  0.04235452]

      [ 0.47891264  0.68831817  0.31309659]]

6、numpy.random.shuffle() 随机打乱序列

    numpy.random.shuffle() 将序列的所有元素随机排序

    传入参数可以是一个序列或者元组

    import numpy as np

    x = range(0, 8, 1)

    print(x)    [0, 1, 2, 3, 4, 5, 6, 7]

    np.random.shuffle(x) 

    print (x)    [2, 3, 5, 4, 1, 7, 0, 6]

7、numpy.random.choice() 随机选取序列的一个元素

    numpy.random.choice()可以从序列(字符串、列表、元组等)中随机选取,返回一个列表,元组或字符串的随机项。

    import numpy as np

    print(np.random.choice(['a','b','c','d','e']))  c

    print np.random.choice(5, 6)

    输出(6个小于5的元素):[2 3 3 3 1 2]

p:每个条目出现的概率。如果没有,假设样本在A中的所有条目都具有均匀分布。

import numpy as np

print np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])

(p=[0.1, 0, 0.3, 0.6, 0]即出现0 1 2 3 4的概率分别是[0.1, 0, 0.3, 0.6, 0])

输出:

[0 3 2]

import numpy as np

ss = ['pooh', 'rabbit', 'piglet', 'Christopher']

print np.random.choice(ss, 5, p=[0.5, 0.1, 0.1, 0.3])

输出:

['Christopher' 'piglet' 'pooh' 'piglet' 'Christopher']

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

1 numpy.random.rand()

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

    rand函数根据给定维度生成[0,1)之间的数据,包含0,不包含1

    dn表格每个维度

    返回值为指定维度的array

  (2)

print(np.random.rand(2,4))
生成一个2行4列的0到1之间的数组

[[0.16965512 0.97445517 0.51992353 0.73377611]
[0.91446815 0.65995296 0.67720307 0.34809015]]

print(np.random.rand(4,3,2))

[[[0.10401912 0.82232074]
[0.68653479 0.07301172]
[0.59939558 0.58055146]]
[[0.03088151 0.88140311]
[0.4033945 0.47251058]
[0.2284928 0.70175964]]
[[0.44053464 0.20180619]
[0.15514924 0.90906066]
[0.17861751 0.68839029]]
[[0.31387288 0.90869563]
[0.14992 0.60987398]
[0.63666834 0.73750431]]]



 

2 numpy.random.randn()

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

  • randn函数返回一个或一组样本,具有标准正态分布。
  • dn表格每个维度
  • 返回值为指定维度的array
print(np.random.randn(2,4))

[[-3.76215048e-04 8.66687229e-01 -2.38559669e-01 1.75060171e+00]
[ 1.57466855e+00 8.17036401e-01 -1.05382851e+00 -1.72285071e+00]]

 

















以上是关于numpy.random的主要内容,如果未能解决你的问题,请参考以下文章