np.random使用与小结

一、np.random.choice

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

从数列a中随机选择size个元素,replace为True表示选出的元素允许重复。p为元素被选中的概率数列

a = np.arange(10)
n1 = np.random.choice(a,5)
n2 = np.random.choice(a,5,replace=False)
print(a),print(n1),print(n2)

[0 1 2 3 4 5 6 7 8 9] 
[6 7 2 8 6] 
[7 5 0 1 2]

np.random.choice(np.arange(4), 3, replace=False, p=[0.4,0.2,0.2,0.2])

array([0, 3, 2])

二、np.random.rand

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

产生维度为(d0, d1, …, dn),值属于[0,1)的均匀分布

np.random.rand(2,5)                                                                                                                                                 
array([[0.76591557, 0.51328605, 0.6392731 , 0.29288276, 0.06521177],
       [0.95525581, 0.45215736, 0.99532118, 0.59897804, 0.52397141]])

三、np.random.randint

np.random.randint(low, high=None, size=None, dtype='l'))

产生属于[low,high)的size数量的离散均匀分布,默认数据类型为int。

如果high为None,则产生属于[0,low)的离散均匀分布

size值可以为数值(产生结果为一维),也可以为list或者tuple(产生结果为二维或者多维)

np.random.randint(0,10,5)                                                                                                                                           
array([0, 8, 7, 8, 9])
np.random.randint(0,10,(2,5))                                                                                                                                       
array([[4, 8, 3, 3, 8],
       [8, 3, 2, 5, 7]])
np.random.randint(2,size=10)                                                                                                                                        
array([1, 0, 0, 0, 1, 1, 1, 1, 1, 1])

四、np.random.randn

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

产生维度为(d0, d1, …, dn)的标准正太分布。同np.random.standard_uniform(),这两个函数功能相同,只是参数写法不同

标准正态分布又称为u分布,是以0为均数、以1为标准差的正态分布(mean=0, stdev=1),记为N(0,1)

np.random.randn(2,5)                                                                                                                                                
array([[-1.07605751,  0.31317055, -0.22755171,  1.20909518, -2.19104446],
       [-0.55637002, -0.22598989,  0.33682028, -1.37535475, -1.39989454]])

五、np.random.random

np.random.random(size=None)

产生属于[0.0, 1.0)的size数量的连续均匀分布。size为list或者tuple时,产生相应维度的结果。

np.random.random(10)                                                                                                                                                
array([0.45979962, 0.07389054, 0.85423248, 0.61159321, 0.78287086,
       0.31949009, 0.88003128, 0.10564087, 0.56007537, 0.29680522])
np.random.random((2,5))                                                                                                                                             
array([[0.71928472, 0.54064274, 0.63533293, 0.97539174, 0.55841619],
       [0.25635754, 0.19995146, 0.28321707, 0.07126725, 0.6354949 ]])

六、 np.random.random_sample

 np.random.random_sample(size=None)

同:np.random.random(size=None)

七、np.random.sample

np.random.sample(size=None)

同:np.random.random(size=None)

八、np.random.standard_normal

np.random.standard_normal(size=None)

同:np.random.randn(d0, d1, …, dn),参数形式不同

np.random.standard_normal((2,5))                                                                                                                                    
array([[ 0.9860204 , -0.01338097, -2.35422435, -0.46540609,  1.86221193],
       [-0.52405505,  0.07280193, -0.13776652, -1.03335881, -1.62485683]])
上一篇:linux搭建httpd


下一篇:第十二周练习题