web-dev-qa-db-ja.com

Rのsample()関数に相当するPython)はありますか?

PythonがRのsample()関数と同等であるかどうかを知りたいです。

sample() 関数は、置換の有無にかかわらず、xの要素から指定されたサイズのサンプルを取得します。

構文は次のとおりです。

sample(x, size, replace = FALSE, prob = NULL)

(詳細情報 ここ

14
Bilal

numpy.random.choice(a, size=None, replace=True, p=None)があなたが探しているものかもしれないと思います。

p引数は、sample()functionのprob引数に対応します。

20
Ouistiti

pandas (PythonのRに最も近いアナログ)には、 _DataFrame.sample_ および _Series.sample_ メソッドがあり、どちらも導入されましたバージョン0.16.1で。

例えば:

_>>> df = pd.DataFrame({'a': [1, 2, 3, 4, 5], 'b': [6, 7, 8, 9, 0]})
>>> df
   a  b
0  1  6
1  2  7
2  3  8
3  4  9
4  5  0
_

置換なしで3行をサンプリング:

_>>> df.sample(3)
   a  b
4  5  0
1  2  7
3  4  9
_

選択肢に対応する重みとして列 'b'を使用して、列 'a'から4行を置換してサンプリングします。

_>>> df['a'].sample(4, replace=True, weights=df['b'])
3    4
0    1
0    1
2    3
_

これらのメソッドはR関数とほぼ同じであり、置換の有無にかかわらず、DataFrame/Seriesから特定の数の値(または値の一部)をサンプリングできます。 Rのsample()prob引数は、pandasメソッドのweightsに対応することに注意してください。

7
Alex Riley

randomパッケージは機能すると思います。具体的にはrandom.sample()。

ここ

0
polka