<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
np.random.random()
是最常用的亂數生成函數,該函數生成的亂數隨機均勻分佈於[0, 1)
區間。如果不提供引數,np.random.random()
函數返回一個浮點型亂數。np.random.random()
函數還可以接受一個整型或元組引數,用於指定返回的浮點型亂數陣列的結構(shape)。也有很多人習慣使用np.random.rand()
函數生成亂數,其功能和np.random.random()
函數一樣,知識np.random.rand()
函數不接受元組引數,必須要寫成兩個整型引數
import numpy as np print(np.random.random()) print(np.random.random(2)) print(np.random.random((2,3)))
np.random.randint()
是另一個常用的亂數生成函數,該函數生成的隨機整數均勻分佈於[low, high)
區間。如果省略low引數,則預設low的值等於0。np.random.randint()
函數還有一個預設引數size
,用於指定返回的整型亂數陣列的結構(shape)
print(np.random.randint(10)) print(np.random.randint(10, size=5)) print(np.random.randint(10, size=(2,5))) print(np.random.randint(10, 100, size=(2,5)))
隨機抽樣是從指定的有序列表中隨機抽取指定數量的元素。隨機抽樣的應用比較廣泛,如產品抽檢、抽籤順序等。NumPy的隨機抽樣函數是np.random.choice()
,其原型如下
np.random.choice(a, size=None, replace=True, p=None)
引數a表示待抽樣的全體樣本,它值接受整數或一維的陣列(列表)。引數a如果是整數,相當於將陣列np.arange(a)
作為全體樣本。引數size用於指定返回抽樣結果陣列的結構(shape)。引數replace用於指定是否允許多次抽取同一個樣本,預設為允許。引數p是和全體樣本集合等長的權重陣列,用於指定對應樣本被抽中的概率。
import numpy as np print(np.random.choice(1,5)) # 抽籤樣本只有1個元素0,抽取5次 print(np.random.choice(['a','b','c'], size=(3,5), p=[0.5,0.25,0.25])) # 指定權重 print(np.random.choice(np.arange(100), size=(2,5), replace=False)) # 不允許重複
使用np.random.randn()
函數是最簡單的生成標準正態分佈亂數的方法。np.random.randn()
函數用於生成均值為0、標準差為1的正態分佈(標準正態分佈)的亂數、該函數可以接受一個或兩個整型引數,用來指定返回的符合標準正態分佈的亂數陣列的結構(shape)
import numpy as np print(np.random.randn()) # 標準正態分佈,均值為0,標準差為1 print(np.random.randn(5)) print(np.random.randn(2,5))
如果需要生成非標準正態分佈亂數,則應該使用np.random.normal()
函數。np.random.nomal()
函數預設生成均值為0、標準差為1的正態分佈亂數。引數loc用於指定均值,引數scale用於指定標準差,引數size用於指定返回的符合正態分佈的亂數陣列的結構(shape)。從下面的程式碼可以看出,和使用預設標準差相比,指定標準差為0.2時,資料分佈更加靠近均值
print(np.random.normal()) # 預設均值為0,標準差為1 print(np.random.normal(loc=2, size=5)) # 引數loc指定均值為2 print(np.random.normal(loc=2, scale=0.2, size=(2,5))) # 引數loc指定均值為2,引數scale指定標準差為0.2
計算機程式或程式語言中的亂數都是偽亂數。因為計算機硬體是確定的,程式碼是固定的,演演算法是準確的,通過這些確定的、固定的、準確的東西不會產生真正的亂數,除非引入這個封閉系統以外的因素。計算機系統的隨機演演算法一般使用線性同餘或平方取中的演演算法,通過一個種子(通常用時鐘代替)產生。這意味著,如果知道了種子和已經產生的亂數,就可能獲得接下來亂數序列的資訊,這就是偽亂數的可預測性
NumPy亂數函數內部使用了一個偽亂數生成器,這個生成器每次範例化時都需要一個種子(整數)完成初始化。如果兩次初始化的種子相同,則每次初始化後產生的亂數序列就完全一致。np.random.seed()
函數可以指定偽亂數生成器的初始化種子
import numpy as np np.random.seed(12345) # 使用'12345'隨機種子初始化偽亂數生成器 print(np.random.random(5)) print(np.random.random((2,3))) np.random.seed(12345) # 再次使用'12345'隨機種子初始化偽亂數生成器 print(np.random.random(5)) # 和上面完全一致 print(np.random.random((2,3))) # 和上面完全一致
從上述程式碼彙總可以看出,只要指定相同的種子,接下來的隨機序列就完全一致。這意味著,只有從外部引入真正的隨機因子(如天空雲朵的形狀、鄰居家無線網路訊號的強度等)作為種子,才可以得到真正的亂數
此外,NumPy還提供了亂數生成器,可以直接操作這個生成器來生成亂數
r = np.random.RandomState(12345) # 使用亂數生成器也同樣 print(r.random(5)) # 和上面完全一致 print(r.random((2,3))) # 和上面完全一致
到此這篇關於Python NumPy隨機抽模組介紹及方法的文章就介紹到這了,更多相關Python NumPy 內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45