2015-12-03 16 views

Odpowiedz

12

myślę numpy.random.choice(a, size=None, replace=True, p=None) może okazać się to, czego szukasz.

Argument p odpowiada argumentowi prob w funkcji sample().

6

W pandas (najbliższym analogie Pythona do R) są metody DataFrame.sample i Series.sample, które zostały wprowadzone w wersji 0.16.1.

Na przykład:

>>> 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 

próbkowania 3 rzędy bez wymiany:

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

Próbka 4 wiersze z kolumny 'A', zastępując przy użyciu kolumny 'B' jako odpowiednich wag do wyborów :

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

Te metody są niemal identyczne z funkcją R, pozwalają Aby wypróbować określoną liczbę wartości - lub ułamek wartości - z DataFrame/Series, z lub bez wymiany. Zauważ, że argument prob w R's sample() odpowiada metodom pandy.

0

Wierzę, że pakiet random działa. W szczególności random.sample().

here

+0

Niestety, funkcja proponujesz nie oferuje możliwość losowego pobierania próbek z wymianą. Funkcje @ jacr i ja możemy to zrobić. – Ouistiti

+1

Fajnie, dobrze się nauczyć czegoś użytecznego. – polka

Powiązane problemy