sample#
- Normal.sample(shape=(), *, method=None, rng=None)[Quelle]#
Zufällige Stichprobe aus der Verteilung.
- Parameter:
- shapetuple von ints, Standard: ()
Die Form der zu ziehenden Stichprobe. Wenn die Parameter der Verteilung, die die Zufallsvariable zugrunde liegen, Arrays der Form
param_shapesind, hat das Ausgabearray die Formshape + param_shape.- method{None, ‘formula’, ‘inverse_transform’}
Die Strategie zur Erzeugung der Stichprobe. Standardmäßig (
None) wählt die Infrastruktur aus den folgenden Optionen, in der Reihenfolge der Priorität.'formula': eine spezifische Implementierung für die Verteilung'inverse_transform': Erzeugt eine gleichverteilte Stichprobe und gibt die inverse CDF für diese Argumente zurück.
Nicht alle method-Optionen sind für alle Verteilungen verfügbar. Wenn die ausgewählte method nicht verfügbar ist, wird ein NotImplementedError` ausgelöst.
- rng
numpy.random.Generatoroder scipy.stats.QMCEngine, optional Pseudo- oder Quasi-Zufallszahlengenerator-Zustand. Wenn rng None ist, wird ein neuer
numpy.random.Generatorunter Verwendung von Entropie des Betriebssystems erstellt. Typen außernumpy.random.Generatorund scipy.stats.QMCEngine werden annumpy.random.default_rngübergeben, um einenGeneratorzu instanziieren.Wenn rng eine Instanz von scipy.stats.QMCEngine ist, die für das Scrambling konfiguriert ist und shape nicht leer ist, dann ist jeder Slice entlang der Nulldimension des Ergebnisses eine „quasi-unabhängige“ Sequenz mit geringer Diskrepanz; das heißt, es sind unterschiedliche Sequenzen, die für die meisten praktischen Zwecke als statistisch unabhängig behandelt werden können. Separate Aufrufe von
sampleerzeugen neue quasi-unabhängige Sequenzen mit geringer Diskrepanz.
Referenzen
[1]Stichprobenentnahme (Statistik), Wikipedia, https://en.wikipedia.org/wiki/Sampling_(statistics)
Beispiele
Instanziieren Sie eine Verteilung mit den gewünschten Parametern
>>> import numpy as np >>> from scipy import stats >>> X = stats.Uniform(a=0., b=1.)
Erzeugt eine Pseudozufallsstichprobe
>>> x = X.sample((1000, 1)) >>> octiles = (np.arange(8) + 1) / 8 >>> np.count_nonzero(x <= octiles, axis=0) array([ 148, 263, 387, 516, 636, 751, 865, 1000]) # may vary
>>> X = stats.Uniform(a=np.zeros((3, 1)), b=np.ones(2)) >>> X.a.shape, (3, 2) >>> x = X.sample(shape=(5, 4)) >>> x.shape (5, 4, 3, 2)