2015-12-03 7 views

Antwort

12

Ich denke numpy.random.choice(a, size=None, replace=True, p=None) gut kann sein, was Sie suchen.

Das Argument entspricht dem prob Argument in der sample() Funktion.

6

In pandas (Python am nächsten Analog zu R) gibt es die DataFrame.sample und Series.sample Methoden, die beide in Version 0.16.1 eingeführt wurden.

Zum Beispiel:

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

Sampling 3 Reihen ersatzlos:

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

Probe 4 Zeilen von Spalte 'a' mit Ersatz, Spalte 'b' ist wie die entsprechenden Gewichtungen für die Auswahl unter Verwendung von :

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

Diese Methoden sind fast identisch mit der R-Funktion, erlauben Sie können eine bestimmte Anzahl von Werten - oder einen Bruchteil von Werten - aus Ihrem DataFrame/Series mit oder ohne Ersatz abfragen. Beachten Sie, dass das prob Argument in R sample()weights in den Pandas-Methoden entspricht.

0

Ich glaube, dass das random Paket funktioniert. Speziell random.sample().

here

+0

Leider ist die Funktion, die Sie vorschlagen, bieten nicht die Möglichkeit von Stichproben mit Ersatz. Die Funktionen @ajcr und ich vorschlagen können es tun. – Ouistiti

+1

Cool, gut, etwas Nützliches zu lernen. – polka

Verwandte Themen