np.random.seed()的理解

本文深入探讨了Numpy库中np.random.seed()函数的作用,通过实例展示了如何使用该函数来生成可重复的随机数序列,并解释了不同种子值对随机数生成的影响。
import numpy as np

if __name__ == '__main__':
    i = 0
    while(i<6):
        if(i<3):
            np.random.seed(0)
            print(np.random.randn(1, 5))
        else:
            print(np.random.randn(1, 5))
            pass
        i += 1
    i = 0
    while(i<2):
        print(np.random.randn(1, 5))
        i += 1
    print('*************************')
    print(np.random.randn(2, 5))
    print('*************************')
    np.random.seed(0)
    i = 0
    while(i<8):
        print(np.random.randn(1, 5))
        i += 1

相同的np.random.seed(0) 所构造出的随机矩阵,是内容起点和顺序一致的;

import numpy as np

if __name__ == '__main__':
    i = 0
    np.random.seed(0)
    while(i<3):
        print(np.random.randn(1, 5))
        i += 1
    i = 0
    np.random.seed(1)
    i = 0
    while(i<3):
        print(np.random.randn(1, 5))
        i += 1

不同的np.random.seed(0) 和 np.random.seed(1) 的随机矩阵的内容起点和顺序是不一样的;

ref:https://www.cnblogs.com/subic/p/8454025.html

`np.random.seed` 是 NumPy 库中的一个函数,用于指定随机数生成时所用算法开始的整数值。其主要作用和使用方法如下: ### 作用 `np.random.seed` 的主要作用是使设有相同参数的 `seed` 函数之后的随机数都相等。也就是说,如果使用相同的 `seed()` 值,则每次生成的随机数都相同,一次指定始终有效。这在需要重现随机数序列的场景中非常有用,例如在调试代码、进行可重复性实验时,通过设置相同的随机种子,可以确保每次运行程序时生成的随机数序列一致[^1][^2][^3][^4]。 ### 使用方法 `np.random.seed()` 函数中的参数可以选择任何一个整数。以下是一些具体的使用示例: #### 生成相同的随机排列 ```python import numpy as np a = np.array([[1, 2, 3, 4, 5], [2, 3, 4, 5, 6], [3, 4, 5, 6, 7], [4, 5, 6, 7, 8], [5, 6, 7, 8, 9]]) print(a) for i in range(3): np.random.seed(0) b = np.random.permutation(a) print(b) ``` 在这个例子中,每次循环都设置随机种子为 0,因此每次生成的随机排列都是相同的[^1]。 #### 生成相同的随机数序列 ```python import numpy as np np.random.seed(4) print(np.random.randn(5)) # np.random.seed(4) print(np.random.randn(5)) np.random.seed(4) print(np.random.randn(5)) ``` 这里通过设置随机种子为 4,在第一次和第三次调用 `np.random.randn(5)` 时生成的随机数序列是相同的[^2]。 #### 生成相同的随机矩阵 ```python import numpy as np np.random.seed(0) print(np.random.rand(2, 3)) np.random.seed(1) print(np.random.rand(2, 3)) np.random.seed(0) print(np.random.rand(2, 3)) ``` 此示例中,第一次和第三次设置随机种子为 0,生成的 2x3 随机矩阵是相同的;第二次设置随机种子为 1,生成的随机矩阵与前两次不同[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值