Python 中帶替換的取樣
-
在 Python 中使用
random.choices()
函式進行替換取樣 -
在 Python 中使用
random.choice()
函式進行替換取樣 -
在 Python 中使用
numpy.random.choice()
函式進行替換取樣
抽樣是指從給定序列中選擇資料樣本的過程。random
模組中有幾個功能可用於從給定序列中選擇樣本。
numpy
包中還有一個 random
子模組,用於處理陣列中的隨機數。
我們可以使用 random.choice()
函式來選擇單個隨機元素。random.sample()
函式無需替換即可取樣。
random.choices()
函式用於在 Python 中進行帶替換取樣。
本教程演示瞭如何在 Python 中獲取帶替換的示例。我們將從整數列表中選擇樣本。
在 Python 中使用 random.choices()
函式進行替換取樣
Python 3.6 引入了 random.choices()
函式。此函式用於在 Python 中生成帶替換的樣本。
我們可以傳遞列表和獲得最終樣本所需的元素總數。結果以列表形式返回。
例如:
import random
lst = [5, 8, 9, 6, 2, 3, 1, 0, 11, 12, 10]
print(random.choices(lst, k=5))
輸出:
[1, 11, 10, 5, 10]
在上面的示例中,我們從 Python 中的列表建立了一個長度為 5 的帶替換的取樣。
我們還可以使用 weights
引數指定一些權重來進行選擇。cum_weights
還可以根據累積權重進行選擇。
權重在內部轉換為累積權重。
在 Python 中使用 random.choice()
函式進行替換取樣
如前幾節所述,random.choice()
從提供的序列中選擇一個隨機元素。
我們可以執行 for
迴圈來生成一個包含隨機選擇元素的列表。由於該函式將在每個迴圈中執行,因此將在不知道先前選擇的元素的情況下選擇元素。
例如:
import random
lst = [5, 8, 9, 6, 2, 3, 1, 0, 11, 12, 10]
result = [random.choice(lst) for _ in range(5)]
print(result)
輸出:
[2, 0, 0, 12, 6]
我們使用列表推導來建立一個列表並將隨機選擇的元素(由 random.choice()
函式生成)儲存在該列表中。
在 Python 中使用 numpy.random.choice()
函式進行替換取樣
numpy
包中有一個 random
子模組。我們可以使用 numpy.random.choice()
函式在 Python 中進行替換取樣。
numpy.random.choice()
函式從一維 numpy
陣列中選擇給定數量的元素。最終結果在 numpy
陣列中返回。
此函式接受一個名為 replace
的引數(預設情況下為 True
)。如果此引數更改為 False
,則返回樣本而不進行替換。
我們將在下面的示例中使用此函式生成一個替換樣本。
import numpy
lst = [5, 8, 9, 6, 2, 3, 1, 0, 11, 12, 10]
arr = numpy.array(lst)
print(numpy.random.choice(arr, 5))
輸出:
[11 10 6 9 3]
最後,我們討論了幾種在 Python 中生成帶替換樣本的方法。random.choices()
函式是最直接的選項,但它僅適用於 Python 3.6 及更高版本。
對於以前的版本,我們可以使用 random.choice()
或 numpy.random.choice()
函式。
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn