本文共 1661 字,大约阅读时间需要 5 分钟。
首先来看一下它的函数定义,主要看他的接受的参数
,(虽然在函数体里什么都没有,但是照样能用它产生数据,这里由于水平原因,不再继续深入探究)
def random(size=None): # real signature unknown; restored from __doc__ """ random(size=None) 返回值,这里没有遵循什么分布规律,只是简单的生成0-1的浮点数,且左闭右开 Return random floats in the half-open interval [0.0, 1.0). Alias for `random_sample` to ease forward-porting to the new random API. """ pass
我们分两种情况来探究,这个size
参数。
直接给参数传一个整数,即size=3
print(np.random.random(3))
返回值:是一个一维数组,注意他不是列表
[0.20367297 0.55265547 0.72267248]
给参数传一个元组,即size=(3, 3)
print(np.random.random((3, 3)))
返回值:是一个二维数组
[[8.88325725e-01 7.05841883e-01 1.38825064e-01]
[4.89045258e-01 7.25233743e-01 8.95902437e-02] [3.62093551e-01 5.59233974e-01 1.84422779e-04]]
还是主要看前三个参数,其中size和上面的一样,我们分别来探究三个参数对返回值的影响。最后一个是返回值类型,在理不做讨论。
这个家伙也是,函数体里啥都没有只对第一个参数赋值,后面两个有默认值,我们这里先不管他们。
print(np.random.randint(10))
返回值:仅仅得到一个整数,且得到的整数总是小于lower
9
对前两个参数赋值,注意high>lower
,即第二个参数要大于第一个参数的值
print(np.random.randint(10, 23))
返回值:仅仅得到一个整数,得到的整数总是在lower和high之间
17
三个参数都赋值
print(np.random.randint(10, 22, (3, 2)))
[[18 11]
[18 16] [10 17]]
这两个放一起说,因为他们的参数一样,只不过生成的随机数的分布不同。
还是老规矩,先看函数定义:
下面来说说,dn
是什么,其实,最关键的还是对符号的理解,它相当于把一个元组数据拆分成一个个具体的数值。
print(np.random.rand(2))
返回结果:
[0.57531079 0.67555903]
print(np.random.rand(2, 3))
返回结果:
[[0.61497674 0.199005 0.4309077 ]
[0.02964575 0.70530525 0.26741078]]
rand是uniform分布。详细解释,看
怎么区分他们的分布,带n
的是正态分布。
转载地址:http://lugsz.baihongyu.com/