np.random.seed(n)用于生成指定的随机数,什么是指定的呢?就是这个函数将随机数分为n个堆,每个堆生成不同的随机数,参数n就表示第个堆,如果多次用此函数,并且n相同,则受此函数影响的np.random.rand()取得的随机数的值是相同的,因为在同一个堆中取得值。比如下面的例子。
import numpy as np
if __name__ == '__main__':
i = 0
while(i<6):
if(i<3):
np.random.seed(3)
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
np.random.seed(3)
i = 0
while(i<6):
print(np.random.randn(1, 5))
i += 1
结果:
[[ 1.78862847 ?0.43650985 ?0.09649747 -1.8634927 ?-0.2773882 ]] [[ 1.78862847 ?0.43650985 ?0.09649747 -1.8634927 ?-0.2773882 ]] [[ 1.78862847 ?0.43650985 ?0.09649747 -1.8634927 ?-0.2773882 ]] [[-0.35475898 -0.08274148 -0.62700068 -0.04381817 -0.47721803]] [[-1.31386475 ?0.88462238 ?0.88131804 ?1.70957306 ?0.05003364]] [[-0.40467741 -0.54535995 -1.54647732 ?0.98236743 -1.10106763]] [[-1.18504653 -0.2056499 ? 1.48614836 ?0.23671627 -1.02378514]] [[-0.7129932 ? 0.62524497 -0.16051336 -0.76883635 -0.23003072]]
------------------------------------------------------------------------------------------------ [[ 1.78862847 ?0.43650985 ?0.09649747 -1.8634927 ?-0.2773882 ]] [[-0.35475898 -0.08274148 -0.62700068 -0.04381817 -0.47721803]] [[-1.31386475 ?0.88462238 ?0.88131804 ?1.70957306 ?0.05003364]] [[-0.40467741 -0.54535995 -1.54647732 ?0.98236743 -1.10106763]] [[-1.18504653 -0.2056499 ? 1.48614836 ?0.23671627 -1.02378514]] [[-0.7129932 ? 0.62524497 -0.16051336 -0.76883635 -0.23003072]] ?
从结果中可以看出来,看颜色分辨!!第一次循环中,i<3时上面用了此函数,那么这三条数据是相同的。下面三个循环没有使用此函数,生成的随机数就不相同。 下面的while循环中,上面使用了此函数,则影响下面的while循环,因为使用的函数的参数都是3,所以导致的结果就是和上面打印的随机数一样的,都是从3号堆中按顺序取的值。
只要是参数n一样那么取得值就一样,和参数本身无关,参数可以随意取!!
|