最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

NumPy random.choice()函數(shù)的使用小結(jié)

 更新時(shí)間:2026年01月06日 11:07:06   作者:程序員風(fēng)嶼  
隨機(jī)采樣 是一個非常常見的操作,NumPy提供的numpy.random.choice() 函數(shù)讓我們可以方便地從數(shù)組或序列中隨機(jī)選取元素,本文將帶深入介紹 numpy.random.choice() 的功能及常見實(shí)戰(zhàn)案例,感興趣的可以了解一下

在數(shù)據(jù)分析、模擬實(shí)驗(yàn)和機(jī)器學(xué)習(xí)中,隨機(jī)采樣 是一個非常常見的操作。
NumPy 提供的 numpy.random.choice() 函數(shù)讓我們可以方便地從數(shù)組或序列中隨機(jī)選取元素。

本文將深入介紹 numpy.random.choice() 的功能、參數(shù)、注意事項(xiàng)以及常見實(shí)戰(zhàn)案例。

一、函數(shù)簡介

numpy.random.choice() 用于從給定的一維數(shù)組中隨機(jī)抽取元素,
并可以選擇是否允許重復(fù)(有放回或無放回抽樣)。

函數(shù)原型如下:

numpy.random.choice(a, size=None, replace=True, p=None)

官方文檔介紹地址numpy.random.choice

二、參數(shù)詳解

參數(shù)說明默認(rèn)值
a如果是整數(shù) n,則表示從 [0, 1, 2, ..., n-1]中抽??;如果是數(shù)組,則表示從該數(shù)組中抽取。必填
size抽取的樣本數(shù)量??梢允钦麛?shù)或元組,用于生成多維結(jié)果。None(即返回單個值)
replace是否允許重復(fù)抽取。True表示有放回抽樣,F(xiàn)alse表示無放回抽樣。True
p每個元素被抽取的概率(權(quán)重)。長度必須與 a相同,且和為 1。None(即平均概率)

三、基礎(chǔ)用法示例

示例 1:從整數(shù)范圍中隨機(jī)選取

import numpy as np

# 從 0~9 中隨機(jī)選擇一個數(shù)字
num = np.random.choice(10)
print(num)

輸出結(jié)果示例:

7

說明:
這里 a=10 表示選擇范圍 [0, 1, 2, ..., 9]。

示例 2:從列表中隨機(jī)抽樣

fruits = ['apple', 'banana', 'cherry', 'orange']
sample = np.random.choice(fruits)
print(sample)

輸出示例:

banana

示例 3:一次抽取多個樣本

numbers = np.arange(10)
sample = np.random.choice(numbers, size=5)
print(sample)

輸出示例(每次結(jié)果不同):

[8 8 0 4 7]

這里8出現(xiàn)兩次是因?yàn)槟J(rèn)有放回抽樣。

示例 4:無放回抽樣(不重復(fù))

sample = np.random.choice(numbers, size=5, replace=False)
print(sample)

輸出:

[4 2 9 7 6]

? 小技巧:當(dāng) replace=False 時(shí),size 不能大于 a 的長度,否則會報(bào)錯。

四、加權(quán)抽樣(設(shè)置概率分布)

默認(rèn)情況下,每個元素被抽取的概率是均勻的。
如果你希望某些元素被抽到的概率更高,可以使用參數(shù) p

示例 5:指定抽樣概率

items = ['A', 'B', 'C']
prob = [0.7, 0.2, 0.1]  # 概率總和必須為 1
samples = np.random.choice(items, size=10, p=prob)
print(samples)

可能輸出:

['A' 'A' 'B' 'A' 'C' 'A' 'A' 'B' 'A' 'A']

?? 實(shí)際中常用于模擬隨機(jī)事件構(gòu)建概率分布模型。

五、生成多維隨機(jī)數(shù)組

size 參數(shù)可以指定為一個元組,用于生成多維結(jié)果。

示例 6:生成二維隨機(jī)數(shù)組

result = np.random.choice(5, size=(2, 3))
print(result)

輸出示例:

[[2 1 4]
 [3 0 1]]

這在深度學(xué)習(xí)、圖像隨機(jī)采樣或批量數(shù)據(jù)構(gòu)造中非常有用。

六、注意事項(xiàng)與常見錯誤

? 1. 概率和不為 1

np.random.choice([1, 2, 3], p=[0.5, 0.5, 0.2])
# ValueError: probabilities do not sum to 1

必須保證:

sum(p) == 1

? 2. 無放回抽樣數(shù)量超限

np.random.choice(5, size=10, replace=False)
# ValueError: Cannot take a larger sample than population when 'replace=False'

解決方案:要么允許重復(fù)(replace=True),要么減小 size

? 3. 非一維數(shù)組抽樣

a 必須是一維數(shù)組,若是多維數(shù)組則需先展平:

matrix = np.arange(9).reshape(3, 3)
choice = np.random.choice(matrix.flatten(), size=4)
print(choice)

七、實(shí)戰(zhàn)案例

案例 1:模擬擲骰子

dice = [1, 2, 3, 4, 5, 6]
rolls = np.random.choice(dice, size=10, replace=True)
print("擲骰結(jié)果:", rolls)

案例 2:隨機(jī)抽取樣本用于驗(yàn)證集

data = np.arange(100)
test_idx = np.random.choice(data, size=20, replace=False)
print("測試集索引:", test_idx)

案例 3:加權(quán)隨機(jī)推薦系統(tǒng)

users = ["新用戶", "普通用戶", "VIP用戶"]
weights = [0.6, 0.3, 0.1]  # 新用戶更容易被推薦
recommend = np.random.choice(users, size=5, p=weights)
print("推薦結(jié)果:", recommend)

八、與其他隨機(jī)函數(shù)的對比

函數(shù)功能是否支持權(quán)重示例
np.random.choice()從數(shù)組隨機(jī)選取? 是離散抽樣
np.random.randin()生成隨機(jī)整數(shù)? 否均勻分布
np.random.rand()生成 0~1 之間的浮點(diǎn)數(shù)? 否連續(xù)分布
np.random.randn()生成服從正態(tài)分布的浮點(diǎn)數(shù)? 否高斯分布

到此這篇關(guān)于NumPy random.choice()函數(shù)的使用小結(jié)的文章就介紹到這了,更多相關(guān)NumPy random.choice()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何將python的數(shù)據(jù)存儲到mysql數(shù)據(jù)庫中

    如何將python的數(shù)據(jù)存儲到mysql數(shù)據(jù)庫中

    在很多數(shù)據(jù)處理項(xiàng)目中,將數(shù)據(jù)存儲到數(shù)據(jù)庫中是非常常見的操作,下面這篇文章主要給大家介紹了關(guān)于如何將python的數(shù)據(jù)存儲到mysql數(shù)據(jù)庫中的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • python實(shí)現(xiàn)俄羅斯方塊小游戲

    python實(shí)現(xiàn)俄羅斯方塊小游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)俄羅斯方塊小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • python中super().__init__()的用法

    python中super().__init__()的用法

    python里的super().__init__()有什么作用?很多同學(xué)沒有弄清楚。super()用來調(diào)用父類(基類)的方法,__init__()是類的構(gòu)造方法,感興趣的小伙伴可以參考閱讀本文
    2023-03-03
  • Pandas?時(shí)間序列分析中的resample函數(shù)

    Pandas?時(shí)間序列分析中的resample函數(shù)

    這篇文章主要介紹了Pandas?時(shí)間序列分析中的resample函數(shù),Pandas?中的resample函數(shù)用于各種頻率的轉(zhuǎn)換工作,下面我們就來看看其的參數(shù)、相關(guān)資料等,需要的小伙伴可以參考一下,希望給你帶來幫助
    2022-02-02
  • dpn網(wǎng)絡(luò)的pytorch實(shí)現(xiàn)方式

    dpn網(wǎng)絡(luò)的pytorch實(shí)現(xiàn)方式

    今天小編就為大家分享一篇dpn網(wǎng)絡(luò)的pytorch實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 解決Djang2.0.1中的reverse導(dǎo)入失敗的問題

    解決Djang2.0.1中的reverse導(dǎo)入失敗的問題

    今天小編就為大家分享一篇解決Djang2.0.1中的reverse導(dǎo)入失敗的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python kafka 多線程消費(fèi)者&手動提交實(shí)例

    python kafka 多線程消費(fèi)者&手動提交實(shí)例

    今天小編就為大家分享一篇python kafka 多線程消費(fèi)者&手動提交實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 手把手教你部署AI小說生成器(Python環(huán)境搭建)

    手把手教你部署AI小說生成器(Python環(huán)境搭建)

    本文詳細(xì)介紹了如何使用Python+AI從零開始搭建屬于自己的AI小說生成器,文章分為環(huán)境準(zhǔn)備、第一次安裝、關(guān)機(jī)重啟、配置大腦等步驟進(jìn)行講解,幫助用戶輕松實(shí)現(xiàn)AI輔助創(chuàng)作
    2026-04-04
  • Django+python服務(wù)器部署與環(huán)境部署教程詳解

    Django+python服務(wù)器部署與環(huán)境部署教程詳解

    這篇文章主要介紹了Django+python服務(wù)器部署與環(huán)境部署教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • python設(shè)定并獲取socket超時(shí)時(shí)間的方法

    python設(shè)定并獲取socket超時(shí)時(shí)間的方法

    今天小編就為大家分享一篇python設(shè)定并獲取socket超時(shí)時(shí)間的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01

最新評論

南汇区| 宁海县| 密山市| 依兰县| 忻州市| 永嘉县| 平顺县| 长垣县| 咸阳市| 久治县| 内丘县| 工布江达县| 新郑市| 新源县| 石嘴山市| 龙井市| 商城县| 富平县| 永登县| 怀柔区| 农安县| 云南省| 高台县| 巫山县| 军事| 巍山| 阿勒泰市| 罗城| 石嘴山市| 乌海市| 吴旗县| 邵东县| 大邑县| 漯河市| 三江| 青铜峡市| 德钦县| 洛阳市| 清水县| 鄄城县| 南开区|