随机数np.random

    • 设置随机数种子
    1. array([[0.77132064, 0.02075195, 0.63364823],
    2. [0.74880388, 0.49850701, 0.22479665],
    3. [0.19806286, 0.76053071, 0.16911084]])
    • 均匀分布
    1. a = np.random.rand(3, 3)
    2. a
    1. array([[0.08833981, 0.68535982, 0.95339335],
    2. [0.00394827, 0.51219226, 0.81262096],
    3. [0.61252607, 0.72175532, 0.29187607]])
    1. # 生成均匀分布随机数,指定随机数取值范围和数组形状
    2. a = np.random.uniform(low = -1.0, high = 1.0, size=(2,2))
    3. a
    • 正态分布
    1. # 生成标准正态分布随机数
    2. a = np.random.randn(3, 3)
    1. array([[ 1.484537 , -1.07980489, -1.97772828],
    2. [ 1.12369125, 1.67262221, 0.09914922]])
    1. # 生成正态分布随机数,指定均值loc和方差scale
    2. a = np.random.normal(loc = 1.0, scale = 1.0, size = (3,3))
    3. a
    1. array([[2.39799638, 0.72875201, 1.61320418],
    2. [0.73268281, 0.45069099, 1.1327083 ],
    3. [0.52385799, 2.30847308, 1.19501328]])

    • 随机打乱1维ndarray数组顺序,发现所有元素位置都被打乱了,代码如下所示。
    1. ('before random shuffle: ', array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
    2. 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]))
    3. ('after random shuffle: ', array([10, 21, 26, 7, 0, 23, 2, 17, 18, 20, 12, 6, 9, 3, 25, 5, 13,
    4. 14, 24, 29, 1, 28, 11, 15, 27, 16, 19, 4, 22, 8]))
    1. # 生成一维数组
    2. a = np.arange(0, 30)
    3. # 将一维数组转化成2维数组
    4. a = a.reshape(10, 3)
    5. print('before random shuffle: \n{}'.format(a))
    6. np.random.shuffle(a)
    7. print('after random shuffle: \n{}'.format(a))
    1. before random shuffle:
    2. [[ 0 1 2]
    3. [ 6 7 8]
    4. [ 9 10 11]
    5. [12 13 14]
    6. [15 16 17]
    7. [18 19 20]
    8. [21 22 23]
    9. [24 25 26]
    10. [27 28 29]]
    11. after random shuffle:
    12. [[15 16 17]
    13. [12 13 14]
    14. [27 28 29]
    15. [ 3 4 5]
    16. [ 9 10 11]
    17. [21 22 23]
    18. [18 19 20]
    19. [ 0 1 2]
    20. [ 6 7 8]
    21. [24 25 26]]

    1. # 随机选取部分元素
    2. a = np.arange(30)
    3. b = np.random.choice(a, size=5)