一、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]])