zoukankan      html  css  js  c++  java
  • Python学习——numpy.random

    numpy.random.rand

      numpy.random模块作用是生成随机数,其中numpy.random.rand(d0, d1, ..., dn):生成一个[0,1)之间的随机浮点数或N维浮点数组。下面是实例:

    import numpy as np
    
    # 生成生成[0,1)之间随机浮点数
    np.random.rand()
    
    # 生成一个15个[0,1)之间随机浮点数的3行5列的数组,
    np.random.rand(3, 5)
    
    # 一个参数,生成: array([ 0.3228230931])
    np.random.rand(1)
    
    # 生成一个元素个数为5个的一维数组
    np.random.rand(5)
    
    # 报错,参数必须是整数,不能是元组
    np.random.rand((2,3))

    numpy.random.randn

      numpy.random.randn(d0, d1, ..., dn):生成一个浮点数或N维浮点数组,取数范围:正态分布的随机样本数。实例:

    import numpy as np
    
    # 无参,不一定是[0,1)之间的随机数
    np.random.randn()
    
    # 一个参数,生成一个元素个数为参数值的数组
    np.random.randn(1)
    np.random.randn(5)
    
    # 两个参数,生成对应的行列数 数组
    np.random.randn(2,3)
    
    # 报错,行列数必须为整数
    np.random.randn((2,3))

    numpy.random.standard_normal

      numpy.random.standard_normal(size=None):生产一个浮点数或N维浮点数组,取数范围:标准正态分布随机样本。实例:

    import numpy as np
    
    # size为整数,array([-0.33786118, -0.98289355])
    np.random.standard_normal(2)
    
    # size为整数序列
    np.random.standard_normal((2,3))
    """
    array([[ 0.67665901, -0.9247266 ,  1.52534072],
           [-1.6140679 ,  0.4291286 , -0.26712738]])
    """
    
    np.random.standard_normal([2,3]).shape
    """(2, 3)"""

    numpy.random.randint

      numpy.random.randint(low, high=None, size=None, dtype='l'):生成一个整数或N维整数数组,取数范围:若high不为None时,取[low,high)之间随机整数,否则取值[0,low)之间随机整数。实例如下:

    import numpy as np
    
    # low=2,生成一个[0,2)之间随机整数
    np.random.randint(2)
    
    # low=2,size=5,生成一个元素取值范围为[0, 2),个数为5的数组
    np.random.randint(2,size=5)
    """
    array([1, 1, 0, 1, 1])
    """
    
    #low=2, high=2,报错,high必须大于low
    np.random.randint(2, 2)
    
    #low=2, high=6, 生成一个[2,6)之间随机整数
    np.random.randint(2, 6)
    
    # low=2, high=6, size=5,生成形状为5的一维整数数组
    np.random.randint(2,6, size=5)
    
    # size为整数元组,生成一个2x3整数数组,取数范围:[0,2)随机整数 
    np.random.randint(2, size=(2,3))
    
    #生成一个2x3整数数组,取值范围:[2,6)随机整数
    np.random.randint(2,6,(2,3))
    
    #dtype参数:只能是int类型
    np.random.randint(2, dtype='int32')
    np.random.randint(2, dtype=np.int32)

    numpy.random.random_integers

      numpy.random.random_integers(low, high=None, size=None):生成一个整数或一个N维整数数组,取值范围:若high不为None,则取[low,high]之间随机整数,否则取[1,low]之间随机整数。实例如下:

    import numpy as np
    
    # low=2,生成一个[1,2]之间随机整数
    np.random.random_integers(2)
    
    # low=2, size=5
    np.random.random_integers(2, size=5)
    """
    array([2, 2, 1, 1, 1])
    """
    # low=2, high=6, 生成一个[2,6]之间随机整数
    np.random.random_integers(2,6)
    
    # low=2, high=6, size=5, 生成一个形状为5的一维整数数组组
    np.random.random_integers(2, 6, size=5)
    
    # size为整数元组, 生成一个2x3数组,取数范围:[1,2]随机整数
    np.random.random_integers(2, size=(2,3))
    
    # 生成一个2x3数组,取数范围:[2,6]随机整数
    np.random.random_integers(2,6,(2,3))

    numpy.random.random_sample

      numpy.random.random_sample(size=None):生成一个[0,1)之间随机浮点数或N维浮点数组。实例如下:

    import numpy as np
     
    # size=None, 生成一个[0,1)之间随机浮点数
    np.random.random_sample()
    
    # size=2, 生成shape=2的一维数组
    np.random.random_sample(2)
    """
    array([0.35763819, 0.49589886])
    """
    
    #size为整数元组
    np.random.random_sample((2,))
    """
    array([0.06049863, 0.19161771])
    """
    
    # 报错
    np.random.random_sample((,2))
    
    # 生成2x3数组
    np.random.random_sample((2,3))
    """
    array([[0.72670655, 0.51374895, 0.5426825 ],
           [0.51285327, 0.65538792, 0.06208806]])
    """
    
    #生成3x2x2数组
    np.random.random_sample((3,2,2))
    """
    array([[[0.11479889, 0.781341  ],
            [0.64208068, 0.37144925]],
           [[0.50598271, 0.22323444],
            [0.30075225, 0.72141338]],
           [[0.65324698, 0.11543862],
            [0.45112802, 0.94799923]]])
    """

    numpy.random.choice

      numpy.random.choice(a, size=None, replace=True, p=None):从序列中获取元素,若a为整数,元素取值为np.range(a)中随机数;若a为数组,取值为a数组元素中随机元素。实例如下:‘

    import numpy as np
    #a为整数,size为None,生成一个range(2)中的随机数 :01
    np.random.choice(2)
    
    #a为整数,size为整数, 生成一个shape=2的一维数组
    np.random.choice(2,2)
    """
    array([1, 0])
    """
    
    #a为整数,size为整数元组, 生成一个2x3数组,取之范围在[0, 5)
    np.random.choice(5,(2,3))
    """
    array([[2, 3, 4],
           [4, 0, 3]])
    """
    
    #a为数组,size为None, 生成一个np.array(['a','b','c','f']中随机元素
    np.random.choice(np.array(['a','b','c','f']))
    
    #a为数组,size为整数元组
    np.random.choice(np.array(['a','b','c','f']),(2,3))#生成2x3数组
    """
    array([['a', 'f', 'f'],
           ['a', 'a', 'a']], dtype='<U1')
    """
    
    #p参数:可以理解成a中元素出现的概率,p的长度和a的长度必须相同,且p中元素之和为1,否则报错
    #np.random.choice(2,p=[1])    #报错,a和p长度不一致
    np.random.choice(5,p=[0,0,0,0,1])    #生成的始终是4
    np.random.choice(5,3,p=[0,0.5,0.5,0,0])    #生成shape=3的一维数组,元素取值为1或2的随机数

    numpy.random.shuffle

      numpy.random.shuffle(x):对X进行重排序,如果X为多维数组,只沿第一条轴洗牌,输出为None。实例如下:

    import numpy as np
    
    list = [1,2,3,4,5]
    
    #输出None
    np.random.shuffle(list)
    #原序列的顺序被修改
    list1
    """
    [3, 1, 5, 4, 2]
    """
    
    #对于多维数组,只沿着第一条轴打乱顺序
    arr = np.arange(9).reshape(3,3)
    arr
    """
    array([[0, 1, 2],
           [3, 4, 5],
           [6, 7, 8]])
    """
    np.random.shuffle(arr)
    arr
    """
    array([[3, 4, 5],
           [0, 1, 2],
           [6, 7, 8]])
    """

    numpy.random.permutation

      numpy.random.permutation(x):与numpy.random.shuffle(x)函数功能相同,两者区别:peumutation(x)不会修改X的顺序。实例如下:

    import numpy as np
    
    # x=5, 生成一个range(5)随机顺序的数组
    np.random.permutation(5)
    
    # x为列表或元组
    list = [1,2,3,4]
    np.random.permutation(list)
    """
    array([3, 1, 4, 2])
    """
    
    list
    """
    [1, 2, 3, 4]
    """
    
    # x为数组
    arr = np.arange(9)
    arr
    """
    array([0, 1, 2, 3, 4, 5, 6, 7, 8])
    """
    
    np.random.permutation(arr)
    """
    array([8, 1, 4, 2, 0, 5, 7, 6, 3])
    """
    
    arr2 = np.arange(9).reshape(3,3)
    arr2
    """
    array([[0, 1, 2],
           [3, 4, 5],
           [6, 7, 8]])
    """
    
    # 对于多维数组,只会沿着第一条轴打乱顺序
    np.random.permutation(arr2)
    """
    array([[0, 1, 2],
           [6, 7, 8],
           [3, 4, 5]])
    """

      参考资料来自:

    https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.rand.html#numpy.random.rand
    
    https://blog.csdn.net/kancy110/article/details/69665164
  • 相关阅读:
    OA权限管理的实现(下)
    Eclipse及其插件介绍和下载(转)
    [转载]在Redhat Linux AS 4下实现软件RAID
    RAID磁盘阵列术语详解(转)
    [转载]关于"编译器失败,错误代码为128。"的解决方案
    Android的SurfaceView使用
    剖析 SurfaceView Callback以及SurfaceHolder
    android drawable 应用
    Android layout xml总结
    listView控件,adapter,以及其他控件的组合
  • 原文地址:https://www.cnblogs.com/cjvae/p/9406373.html
Copyright © 2011-2022 走看看