欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Numpy的np.random隨機(jī)模塊詳解

 更新時(shí)間:2023年08月18日 11:52:25   作者:Clichong  
這篇文章主要介紹了Numpy的np.random隨機(jī)模塊詳解,平時(shí)都會(huì)使用到隨機(jī)模塊,一般是torch.random或者是numpy.random,有或者是直接使用ramdom這個(gè)python內(nèi)置的工具包,那么下面就簡(jiǎn)單記錄一下numpy.random常用的函數(shù),需要的朋友可以參考下

1. 隨機(jī)抽樣

import numpy as np
np.random.randn(3,3) # 從標(biāo)準(zhǔn)正太分布中返回樣本
np.random.rand(3,3)  # 從0-1均勻分布分布中返回樣本
np.random.randint(0, 10, size=(3,3))     # 返回隨機(jī)的整數(shù),左閉右開(kāi)區(qū)間[)
np.random.random_integers(0, 10, (3,3))  # 返回隨機(jī)的整數(shù),位于閉區(qū)間[]
np.random.random((3,3))          # 返回范圍[0., 1.)之間的隨機(jī)浮點(diǎn)數(shù)
np.random.random_sample((3,3))   # 返回范圍[0., 1.)之間的隨機(jī)浮點(diǎn)數(shù)
np.random.ranf((3,3))            # 返回范圍[0., 1.)之間的隨機(jī)浮點(diǎn)數(shù)
np.random.sample((3,3))          # 返回范圍[0., 1.)之間的隨機(jī)浮點(diǎn)數(shù)
# 從[0,5)中挑選3個(gè)數(shù),其權(quán)重分別為p,其中np.random.choice(5, 3) == np.random.randint(0, 5, 3)
np.random.choice(5, 3, p=[0.1, 0.25, 0.15, 0.4, 0.1])  # 從樣本中根據(jù)對(duì)應(yīng)的權(quán)重返回隨機(jī)選擇索引,權(quán)重越大越可能被選擇到

2. 隨機(jī)排序

import numpy as np
np.random.shuffle(arr)  # 隨機(jī)打亂順序,直接是內(nèi)置的,不需要返回
arr = np.random.permutation(arr)   # 隨機(jī)打亂順序,需要返回

3. 隨機(jī)分布

分布函數(shù)分布說(shuō)明
[beta(a, b, size])貝塔分布樣本,在 [0, 1]內(nèi)。
[binomial(n, p, size])二項(xiàng)分布的樣本。
[chisquare(df, size])卡方分布樣本。
[dirichlet(alpha, size])狄利克雷分布樣本。
[exponential(scale, size])指數(shù)分布
[f(dfnum, dfden, size])F分布樣本。
[gamma(shape, scale, size])伽馬分布
[geometric(p, size])幾何分布
[gumbel(loc, scale, size])耿貝爾分布
[hypergeometric(ngood, nbad, nsample, size])超幾何分布樣本。
[laplace(loc, scale, size])拉普拉斯或雙指數(shù)分布樣本
[logistic(loc, scale, size])Logistic分布樣本
[lognormal(mean, sigma, size])對(duì)數(shù)正態(tài)分布
[logseries(p, size])對(duì)數(shù)級(jí)數(shù)分布。
[multinomial(n, pvals, size])多項(xiàng)分布
[multivariate_normal(mean, cov, size])多元正態(tài)分布。
[negative_binomial(n, p, size])負(fù)二項(xiàng)分布
[noncentral_chisquare(df, nonc, size])非中心卡方分布
[noncentral_f(dfnum, dfden, nonc, size])非中心F分布
[normal(loc, scale, size])正態(tài)(高斯)分布
[pareto(a, size])帕累托(Lomax)分布
[poisson(lam, size])泊松分布
[power(a, size])功率分布
[rayleigh(scale, size])Rayleigh 分布
[standard_cauchy(size])標(biāo)準(zhǔn)柯西分布
[standard_exponential(size])標(biāo)準(zhǔn)的指數(shù)分布
[standard_gamma(shape, size])標(biāo)準(zhǔn)伽馬分布
[standard_normal(size])標(biāo)準(zhǔn)正態(tài)分布 (mean=0, stdev=1).
[standard_t(df, size])標(biāo)準(zhǔn)學(xué)生 t 分布
[triangular(left, mode, right, size])三角形分布
[uniform(low, high, size])均勻分布
[vonmises(mu, kappa, size])von Mises分布
[wald(mean, scale, size])瓦爾德(逆高斯)分布
[weibull(a, size])Weibull 分布
[zipf(a, size])齊普夫分布

4. 隨機(jī)種子

# 1. RandomState隨機(jī)種子的使用:numpy.random.RandomState實(shí)例對(duì)象是線程安全的
from numpy.random import RandomState
r = RandomState(1234567890)
a = r.randint(1, 10,size=10)
r = RandomState(1234567890)
b = r.randint(1, 10, size=10)
r = RandomState(1234567890)
c = r.randint(1, 10, size=10)
r = RandomState(1234567890)
d = r.randint(1, 10, size=10)
a,b,c,d
# 輸出:
# (array([3, 7, 4, 2, 5, 1, 7, 5, 1, 8]),
#  array([3, 7, 4, 2, 5, 1, 7, 5, 1, 8]),
#  array([3, 7, 4, 2, 5, 1, 7, 5, 1, 8]),
#  array([3, 7, 4, 2, 5, 1, 7, 5, 1, 8]))
# 分析:由于每次輸出前都設(shè)置了相同的隨機(jī)種子,所以程序得到的隨機(jī)數(shù)的值相同
# 2. np.random.seed隨機(jī)種子的使用:numpy.random.seed()不是線程安全的
# 如果程序中有多個(gè)線程最好使用numpy.random.RandomState實(shí)例對(duì)象來(lái)創(chuàng)建或者使用random.seed()來(lái)設(shè)置相同的隨機(jī)數(shù)種子。
np.random.seed(1234567890)
a = np.random.randint(1, 10, size=10)
np.random.seed(1234567899)
b = np.random.randint(1, 10, size=10)
np.random.seed(1234567890)
c = np.random.randint(1, 10, size=10)
np.random.seed(1234567899)
d = np.random.randint(1, 10, size=10)
a,b,c,d
# 輸出:
# (array([3, 7, 4, 2, 5, 1, 7, 5, 1, 8]),
#  array([4, 9, 1, 7, 2, 8, 8, 3, 3, 4]),
#  array([3, 7, 4, 2, 5, 1, 7, 5, 1, 8]),
#  array([4, 9, 1, 7, 2, 8, 8, 3, 3, 4]))
# 分析:由于第一次與第三次輸出前設(shè)置了相同的隨機(jī)種子,而第二次與第四次輸出前設(shè)置了相同的隨機(jī)種子
# 所以第一次與第三次輸出一致,第二次與第四次輸出一致。
# 3. ramdom隨機(jī)種子的使用
import random
random.seed(1234567890)
a = random.sample(range(10),10)  
random.seed(1234567890)
b = random.sample(range(10),10)
c = random.sample(range(10),10)
d = random.sample(range(10),10)
a,b,c,d
# 輸出:
# ([9, 2, 7, 1, 4, 8, 5, 0, 6, 3],
#  [9, 2, 7, 1, 4, 8, 5, 0, 6, 3],
#  [6, 2, 0, 5, 8, 9, 4, 1, 7, 3],
#  [2, 7, 3, 8, 6, 1, 4, 9, 0, 5])
# 分析:由于第一次與第二次輸出前設(shè)置了相同的隨機(jī)種子,所以輸出結(jié)果一致;
# 而剩下兩次沒(méi)有設(shè)置隨機(jī)種子,隨意兩次結(jié)果都是隨機(jī)輸出的,分別不同

拓展,在訓(xùn)練開(kāi)始時(shí),參數(shù)的初始化是隨機(jī)的,為了讓每次的結(jié)果一致,我們需要設(shè)置隨機(jī)種子。

torch中的隨機(jī)種子使用如下:

opt.seed = random.randint(1, 10000)
print("Random Seed: ", opt.seed)
torch.manual_seed(args.seed)		# 為CPU設(shè)置隨機(jī)種子
if cuda:
    torch.cuda.manual_seed(seed)	# 為當(dāng)前GPU設(shè)置隨機(jī)種子
    torch.cuda.manual_seed_all(seed)# 為所有GPU設(shè)置隨機(jī)種子

到此這篇關(guān)于Numpy的np.random隨機(jī)模塊詳解的文章就介紹到這了,更多相關(guān)Numpy隨機(jī)模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • jupyter 實(shí)現(xiàn)notebook中顯示完整的行和列

    jupyter 實(shí)現(xiàn)notebook中顯示完整的行和列

    這篇文章主要介紹了jupyter 實(shí)現(xiàn)notebook中顯示完整的行和列,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • 在django中form的label和verbose name的區(qū)別說(shuō)明

    在django中form的label和verbose name的區(qū)別說(shuō)明

    這篇文章主要介紹了在django中form的label和verbose name的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • 使用用Pyspark和GraphX實(shí)現(xiàn)解析復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)

    使用用Pyspark和GraphX實(shí)現(xiàn)解析復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)

    GraphX是Spark提供的圖計(jì)算API,它提供了一套強(qiáng)大的工具,這篇文章將詳細(xì)為大家介紹如何在Python?/?pyspark環(huán)境中使用graphx進(jìn)行圖計(jì)算,感興趣的可以了解下
    2024-01-01
  • python 數(shù)據(jù)類(lèi)型強(qiáng)制轉(zhuǎn)換的總結(jié)

    python 數(shù)據(jù)類(lèi)型強(qiáng)制轉(zhuǎn)換的總結(jié)

    這篇文章主要介紹了python 數(shù)據(jù)類(lèi)型強(qiáng)制轉(zhuǎn)換的使用總結(jié),幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • 跟老齊學(xué)Python之使用Python操作數(shù)據(jù)庫(kù)(1)

    跟老齊學(xué)Python之使用Python操作數(shù)據(jù)庫(kù)(1)

    本文詳細(xì)講述了使用python操作數(shù)據(jù)庫(kù)所需要了解的知識(shí)以及準(zhǔn)備工作,十分的詳盡,這里推薦給想學(xué)習(xí)python的小伙伴。
    2014-11-11
  • python基礎(chǔ)之文件操作

    python基礎(chǔ)之文件操作

    這篇文章主要介紹了python文件操作,實(shí)例分析了Python中返回一個(gè)返回值與多個(gè)返回值的方法,需要的朋友可以參考下
    2021-10-10
  • python實(shí)現(xiàn)帶界面的井字棋小游戲

    python實(shí)現(xiàn)帶界面的井字棋小游戲

    這篇文章我們主要介紹的是python實(shí)現(xiàn)帶界面的井字棋小游戲,從安裝tkinter開(kāi)始,然后初始化窗口,定義按鈕即查找獲勝條件,想具體了解的小伙伴可以參考下文,附有詳細(xì)代碼
    2021-09-09
  • python隨機(jī)獲取列表中某一元素的方法

    python隨機(jī)獲取列表中某一元素的方法

    本文主要介紹了python隨機(jī)獲取列表中某一元素的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Python數(shù)據(jù)類(lèi)型-序列sequence

    Python數(shù)據(jù)類(lèi)型-序列sequence

    這篇文章主要介紹了Python數(shù)據(jù)類(lèi)型-序列sequence,在前面,我們已經(jīng)對(duì)Python學(xué)習(xí)做了系統(tǒng)的知識(shí)梳理(Python思維導(dǎo)圖),我們接下來(lái)把知識(shí)點(diǎn)分節(jié)進(jìn)行細(xì)講。這一節(jié),我們講解序列,需要的朋友可以參考下
    2022-01-01
  • pytorch之torch_scatter.scatter_max()用法

    pytorch之torch_scatter.scatter_max()用法

    這篇文章主要介紹了pytorch之torch_scatter.scatter_max()用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評(píng)論