我想知道Python是否具有sample()
R中的函数的等价物.
所述样品()函数将指定大小的使用具有或不具有替换x的元素的样品.
语法是:
sample(x, size, replace = FALSE, prob = NULL)
(更多信息在这里)
我想numpy.random.choice(a, size=None, replace=True, p=None)
很可能就是你要找的东西.
该p
参数对应prob
的参数sample()
功能.
在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
从替换列'a'中取样4行,使用列'b'作为选择的相应权重:
>>> df['a'].sample(4, replace=True, weights=df['b']) 3 4 0 1 0 1 2 3
这些方法几乎与R函数相同,允许您从DataFrame/Series中采样特定数量的值(或值的一部分),无论是否替换.请注意,prob
R中的参数sample()
对应weights
于pandas方法.