Pythonのsample関数を使ってリストからランダムに要素を抽出する方法

スポンサーリンク

今回は、Pythonのsample()関数と、データサイエンスの領域におけるその重要性に焦点を当てます。

では、さっそく始めましょう

スポンサーリンク

Pythonのsample()メソッドって何?

まず、データサイエンス業界におけるsample()メソッドの存在について理解しましょう。

データの予測に関する問題を解決していると、適用したアルゴリズムの精度を推定するために、一握りのデータでアルゴリズムをテストする必要がある状況にしばしば出くわします。

このようなときにPythonのsample()メソッドが登場します。

sample()メソッドは、利用可能なデータからランダムにサンプルを選んで操作することができます

データをサンプリングする技術はたくさんありますが、sample()メソッドはその中でも最も簡単なものの1つだと考えられています。

Pythonのsample()メソッドは、リスト、タプル、セット、データフレームなど、すべてのタイプの反復記号で動作します。

これは、ユーザーが定義した数のデータ値を通じて、反復処理可能なデータからランダムに選択されます。

それでは、以下のセクションでその構造を理解しましょう。

sample() メソッドの構文

以下の構文を見てください。

構文は以下の様な感じです。

sample(iterable, sample_amt)

関数に、与えられた反復処理可能なデータ構造からランダムに選択させたいサンプルの量を与える必要があります。

1. Pythonのsample()とリスト

ここでは、Python のリストと一緒に sample() 関数を実装し、その関数を使ってデータからランダムに4つのサンプルを選択しました。

例えば、以下の様になります。

from random import sample
 
lst = [10,20,40,30,50,46,89]
res = sample(lst, 4)
print(res)

結果は以下の通りです。

[20, 89, 40, 46]

2. Pythonのsample()とsetの組み合わせ

ここでは、アルファベットと数値を使ってPythonの集合を作成しました。

さらに、この集合に対してsample()関数を適用し、ランダムに4つの値を選択しました。

例えば、以下の様になります。

from random import sample
 
set_sample = {1,2,3,4,5,"s","a","f","a"}
res = sample(set_sample, 4)
print(res)

結果は以下の通りです。

['f', 1, 5, 2]

sample() 関数のエラーと例外について

sample()関数を使用していると、ValueError例外に遭遇することがあります。

sample_amtに、イテラブルに存在するデータ値の総数より大きな値を与えると、この例外が発生します。

例えば、以下の様になります。

例:

from random import sample
 
set_sample = {1,2,3,4,5,"s","a","f","a"}
res = sample(set_sample, 15)
print(res)

結果は以下の通りです。

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-9-284724c4b7db> in <module>
      2
      3 set_sample = {1,2,3,4,5,"s","a","f","a"}
----> 4 res = sample(set_sample, 15)
      5 print(res)
 
c:usershpppdatalocalprogramspythonpython36lib
andom.py
in sample(self, population, k)
    316         n = len(population)
    317         if not 0 <= k <= n:
--> 318             raise ValueError("Sample larger than population or is negative")
    319         result = [None] * k
    320         setsize = 21        # size of a small set minus size of an empty list
 
ValueError: Sample larger than population or is negative

まとめ

ここまでで、このトピックは終了です。

もし何か疑問があれば、お気軽にコメントください。

Pythonに関連するこのような投稿をもっと見るには、お楽しみに!それまでは、Happy Learning!

タイトルとURLをコピーしました