# np.random模块 ### 1. np.random.choice(a, size=None, replace=True) 从数列a中随机选择size个元素,replace为True表示选出的元素允许重复。 ```python a = np.arange(10) n1 = np.random.choice(a, 5) n2 = np.random.choice(a, 5, replace=True) a >>>array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) n1 >>>array([9, 9, 6, 3, 6]) n2 >>>array([0, 4, 9, 3, 7]) ``` ### 2. np.random.rand(d0, d1, ..., dn) 产生维度为(d0, d1, ..., dn),值属于[0,1)的正太分布 ```python np.random.rand(2, 5) >>>array([[0.85430119, 0.77218818, 0.596804 , 0.47122106, 0.83833491], [0.69707853, 0.89548212, 0.28075762, 0.89051758, 0.5542581 ]]) ``` ### 3. np.random.randint(low, high=None, size=None, dtype) 产生属于[low,high)的size数量的离散均匀分布。如果high为None,则产生属于[0,low)的离散均匀分布。size值可以为数值(产生结果为一维),也可以为list或者tuple。 ```python np.random.randint(0, 10, 5) >>>array([4, 2, 2, 7, 6]) np.random.randint(0, 10, (2, 5)) array([[9, 9, 9, 1, 6], [6, 0, 5, 0, 6]]) ``` ### 4. np.random.randn(d0, d1, ..., dn) 产生维度为(d0, d1, ..., dn)的标准正太分布,同np.random.standard_uniform(),这两个函数功能相同,只是参数写法不同。 ```python np.random.randn(2, 5) >>>array([[ 0.1142037 , 0.02289707, -0.79126569, 0.63222699, -0.57058646], [ 0.97086442, -0.5591229 , -0.23254649, -0.83836432, 0.40212082]]) ``` ### 5. np.random.random(size=None) 产生属于[0.0, 1.0)的size数量的连续均匀分布。 ```python np.random.random(10) >>>array([0.18415471, 0.26517935, 0.18835891, 0.74001802, 0.29266111, 0.33034737, 0.63918234, 0.63906577, 0.14263593, 0.74097519]) np.random.random((2, 5)) array([[0.89339891, 0.59936845, 0.94216104, 0.9409255 , 0.72263055], [0.03008944, 0.58887891, 0.79108164, 0.43515193, 0.23441162]]) ``` ### 6. np.random.random_sample(size=None) 同:np.random.random(size=None) ### 7. np.random.sampe(size=None) 同:np.random.random(size=None) ### 8. np.random.standard_normal(size=None) 同:np.random.randn(*d0*, *d1*, *...*, *dn*) ### 9. np.random.binomial(n,p,size=None) 对二项分布进行采样。n表示采样次数,p表示成功的概率,size表示输出结果的形状(shape)