1. 程式人生 > >numpy.random.seed()的使用

numpy.random.seed()的使用

這個函式的使用方法,在這裡已經有前輩講解過了,只是自己在測試的時候有一些思考,所以便寫了這篇部落格。下面是前輩文章的原話:

seed( ) 用於指定隨機數生成時所用演算法開始的整數值,如果使用相同的seed( )值,則每次生成的隨即數都相同,如果不設定這個值,則系統根據時間來自己選擇這個值,此時每次生成的隨機數因時間差異而不同。

編寫如下第一份程式碼:

from numpy import *
num=0
while(num<5):
    random.seed(5)
    print(random.random())
    num+=1

執行結果為:

0.22199317108973948
0.22199317108973948
0.22199317108973948
0.22199317108973948
0.22199317108973948

可以看到,每次執行的結果都是一樣的

修改程式碼,如下為第二份程式碼:

from numpy import *
num=0
random.seed(5)
while(num<5):
    print(random.random())
    num+=1

執行結果為:

0.22199317108973948
0.8707323061773764
0.20671915533942642
0.9186109079379216
0.48841118879482914

可以看到,和上一份程式碼的執行結果不同。這裡每次的輸出結果都是不一樣的。這也就提醒了我們在以後編寫程式碼的時候要明白一點:random.seed(something)只能是一次有效。其實仔細想想也很自然,如果不是一次有效,比如說是一直有效,那豈不是會影響到後續的程式碼中隨機數的選取?

這次測試的程式碼比較可以說是很簡單的,但是卻暴露了我的一個思維上的漏洞:在這次測試中我雖然明白了:

seed( ) 用於指定隨機數生成時所用演算法開始的整數值,如果使用相同的seed( )值,則每次生成的隨即數都相同,如果不設定這個值,則系統根據時間來自己選擇這個值,此時每次生成的隨機數因時間差異而不同。

這段話的意思,但是我卻先入為主地認為第二份程式碼的結果應和第一份程式碼中的一致。而通過反面思考,假設這個函式使用一次後便是一直有效的,那麼每次生成的隨即數都會相同,但是這樣豈不是會影響到後續的程式碼中隨機數的選取?

所以,以後學新的東西的時候,都要問自己傻問題,不斷地去測試自己的想法以達到更深的理解。

故對於該函式的使用,可總結為:

seed( ) 用於指定隨機數生成時所用演算法開始的整數值。
1.如果使用相同的seed( )值,則每次生成的隨即數都相同;
2.如果不設定這個值,則系統根據時間來自己選擇這個值,此時每次生成的隨機數因時間差異而不同。
3.設定的seed()值僅一次有效

相關推薦

np.arange()numpy.random.seed()

arange()函式用於建立等差陣列,使用頻率很高。arange函式和range函式很像,兩個的區別是arange函式返回的是一個數據,而range函式返回的是list。另外,在使用arange前,需要先引入numpy,而range不用。其他,兩者都差不多 我們對比著range進行示例展示:

numpy.random.seed()直觀理解

seed()函式是用來控制生成有規律隨機數的。 當()中有數值時,生成與該值相關的隨機數 import numpy as np 例如, 當()中的值為0時, np.random.seed(0) print(np.random.randn(1, 3)) np.ra

numpy.random.seed()的使用

這個函式的使用方法,在這裡已經有前輩講解過了,只是自己在測試的時候有一些思考,所以便寫了這篇部落格。下面是前輩文章的原話: seed( ) 用於指定隨機數生成時所用演算法開始的整數值,如果使用相同的seed( )值,則每次生成的隨即數都相同,如果不設定這

numpy random 模塊

num .cn alt logs lar rand 轉載 分享 dom 轉載:http://blog.csdn.net/claroja/article/details/70229758numpy random 模塊

numpy.random之常用函數

數據 align ges nump 了解 num 1.0 浮點數 rand 在實際開發中,我們經常會使用隨機函數,比如交叉驗證,構造測試數據等。下面,是我常用的幾個生成隨機樣本的函數: 1,rand(n1,n2,…,nn) 每一維度都是[0.0,1.0)半閉半開區間上的隨機

numpy.random

ring n) 匯總 div 聲明 xiaomi 介紹 blog 我們 在python數據分析的學習和應用過程中,經常需要用到numpy的隨機函數,由於隨機函數random的功能比較多,經常會混淆或記不住,下面我們一起來匯總學習下。 import numpy as np

numpy教程:隨機數模塊numpy.random

false initial ted 0.11 n) byte ati type 數組 http://blog.csdn.net/pipisorry/article/details/39508417 隨機數種子 RandomState RandomState exposes

隨機種子random_state,random seed

不同 and state 每次 shu IT random 隨機 作用 首先random_state和random seed是一樣的,都是設置隨機種子 在許多模型中都有random_state,例如SVC, ShuffleSplit()等,在模型中設置random_stat

numpy.random.randint用法

numpy.random.randint(low, high=None, size=None, dtype='l') 函式的作用是,返回一個隨機整型數,範圍從低(包括)到高(不包括),即[low, high)。 如果沒有寫引數high的值,則返回[0,low)的值。 引數如下:

課堂練習--計算陣列的最大值,最小值,平均值,標準差,中位數;numpy.random模組提供了產生各種分佈隨機數的陣列;正態分佈;Matplotlib

#計算陣列的最大值,最小值,平均值,標準差,中位數 import numpy as np a=np.array([1, 4, 2, 5, 3, 7, 9, 0]) print(a) a1=np.max(a) #最大值 print(a1) a2=np.min(a) #最小值 print(a2) a3

python numpy : random.rand 和 random.random 的區別

相同點:兩個函式都是在 [0, 1) 的均勻分佈中產生隨機數。 不同點:引數傳遞不同。random.random( )接收一個單獨的元組,而random.rand( )接收分開的引數 例如: 要生成3行5列的陣列,你可以 np.random.rand(3, 5) 或者 np.

numpy.random.shuffle打亂順序函式

numpy.random.shuffle 在做將caffe模型和預訓練的引數轉化為tensorflow的模型和預訓練的引數,以便微調,遇到如下函式:   def gen_data(source): while True: indices = ran

numpy.random模組用法總結

出處:https://www.cnblogs.com/JetReily/p/9398148.html numpy.random.uniform(low=0.0, high=1.0, size=None)  生出size個符合均分佈的浮點數,取值範圍為[low, high

numpy.random.randn()與rand()的區別

numpy中有一些常用的用來產生隨機數的函式,randn()和rand()就屬於這其中。  numpy.random.randn(d0, d1, …, dn)是從標準正態分佈中返回一個或多個樣本值。  numpy.random.rand(d0, d1, …, dn)的隨機樣本

python-numpy.random.randint()

numpy.random.randint numpy.random.randint(low, high=None, size=None, dtype='l') Return random integers from low (inclusive) to high (exc

np.random.random()函式 引數用法以及numpy.random系列函式大全

原文作者:aircraft 原文連結:https://www.cnblogs.com/DOMLX/p/9751471.html 1.np.random.random()函式引數 np.random.random((1000, 20)) 上面這個就代表一千個浮點數,從0-20中隨機。 2.num

python模組之numpy.random

最近在看程式碼的過程中碰到成隨機數的函式,因此接觸到不少numpy子模組random中的函式,上網也查了比較多,大家寫的真好啊!於是,我也想整理份,但也知自己水平低!所以寫的不好的地方還望大家多多指出!  目前接觸random模組中的函式也不多,但幾個常用的都會介紹下,以後

numpy.random.randn()與rand()的區別(轉載)

numpy中有一些常用的用來產生隨機數的函式,randn()和rand()就屬於這其中。  numpy.random.randn(d0, d1, …, dn)是從標準正態分佈中返回一個或多個樣本值。  numpy.random.rand(d0, d1, …, dn)的隨機樣本

datetime函式和random.seed()函式的應用

一,datetime 在python中datetime是一個庫是一個模組也是一個函式,作用很多,這裡面只對其做簡單的最常用的講解。 首先返回系統時間 import datetime nowTime=datetime.datetime.now() print nowT

區分python中random模組的randint與numpy.random模組的randint

random.randint(a, b) # 返回閉區間 [a, b] 範圍內的整數值 numpy.random.randint(a, b) # 返回開區間 [a, b) 範圍內的整數值 >>> random.randint(0,1