[Python] Zufällige Verarbeitung (erstellen, auswählen, sortieren)

Random

Wenn Sie einen zufälligen Index möchten

numpy.random.randint(low, high=None, size=None) Niedrig ist enthalten, aber hoch ist nicht enthalten. Die Verteilung ist gleichmäßig

In [49]: np.random.randint(0,100,size=10)
Out[49]: array([91, 64, 71, 65, 94, 58, 53, 14, 49, 52])

In [50]: np.random.randint(0,100,size=(2,3))
Out[50]: 
array([[18, 30, 22],
       [95, 34, 85]])

In [51]: x = np.random.randint(0,100,size=1000)

randint.png

Gleichmäßige Verteilung

numpy.random.rand(d0, d1, ..., dn)

In [12]: np.random.rand(10)
Out[12]: 
array([ 0.88113083,  0.20320019,  0.32004609,  0.37492399,  0.14972709,
        0.12742709,  0.75792997,  0.61045003,  0.04126539,  0.89053443])

In [13]: np.random.rand(2,3)
Out[13]: 
array([[ 0.9020553 ,  0.83688775,  0.28991469],
       [ 0.83150826,  0.13279892,  0.12171419]])

In [14]: x = np.random.rand(10000)

uniform_distribution.png

Standardnormalverteilung

numpy.random.randn(d0, d1, ..., dn)

In [17]: np.random.randn(10)
Out[17]: 
array([-0.82515182,  0.76906557, -0.7280289 , -0.01442234, -1.06237328,
        0.39381346, -1.15061995, -0.09937671,  0.66138369,  1.21645816])

In [18]: np.random.randn(2,3)
Out[18]: 
array([[ 0.80548817, -1.2232574 , -0.33438786],
       [-1.85177797, -1.30872667, -0.28216313]])

In [19]: x = np.random.randn(10000)

standard_normal_distribution.png

In [41]: def N(mean, var, shape):
    ...:     return np.sqrt(var)*np.random.randn(*shape) + mean
    ...: 
    ...: 

In [42]: N(5.0, 10.0, [10])
Out[42]: 
array([ 4.86729898,  6.7609417 ,  4.26180116,  3.88441367,  5.98194004,
       -1.13748272,  5.74417308,  4.0822398 ,  8.02914619,  6.88882414])

In [43]: N(5.0, 10.0, [2, 3])
Out[43]: 
array([[ 4.97538772,  5.79304735,  0.39961495],
       [ 0.38103024,  3.00300634, -0.95105639]])

In [44]: x = N(5.0, 10.0, [10000])

standard_normal_distribution2.png

Wenn Sie das numpy-Array mischen möchten

numpy.random.shuffle(x)

In [55]: A = np.arange(100)

In [56]: np.random.shuffle(A)

In [57]: A
Out[57]: 
array([77, 74, 91, 29, 16, 23, 54, 10,  4, 21, 89, 32, 28, 52, 47, 27, 68,
        3, 73, 64, 63, 33, 39, 67, 62, 37, 66, 55, 57, 83, 98, 35, 13, 84,
       90, 26, 45, 44, 82, 41, 15, 42, 79, 65, 43, 24, 95, 72, 78,  1, 69,
       51, 18, 61, 31, 50,  2, 46, 94, 17, 70,  7, 85,  6, 87, 56, 40, 60,
       19, 25,  0, 88, 30,  5, 86, 34, 93,  9, 48, 20,  8, 36, 49, 11, 99,
       97, 71, 38, 75, 59, 58, 22, 14, 92, 76, 80, 53, 96, 12, 81])

** Verhalten beim Mischen eines mehrdimensionalen Numpy-Arrays ** Wenn ein mehrdimensionales Numpy-Array gemischt wird, wird es entlang des ersten Index (erste Dimension) gemischt.

In [19]: A = np.arange(9).reshape(3,3)

In [20]: print A
[[0 1 2]
 [3 4 5]
 [6 7 8]]

In [21]: np.random.shuffle(A)

In [22]: print A
[[3 4 5]
 [0 1 2]
 [6 7 8]]

Wenn Sie einen gemischten Index möchten

numpy.random.permutation(x) Wenn Sie nicht möchten, dass die Daten gemischt werden, mischen Sie den Index und übergeben Sie ihn.

In [58]: A = np.arange(100)

In [59]: x = np.random.permutation(100)

In [60]: A[x]
Out[60]: 
array([14, 36, 70, 75,  7, 80, 19, 99, 40, 97, 31, 20, 87, 68, 78, 50, 73,
       66, 12, 45, 69, 72, 24, 42, 58, 89, 71, 98, 90, 63, 34, 81, 67, 55,
       17,  1, 23, 62, 28, 39, 85, 65, 52, 29, 22, 49,  9, 13, 18, 25, 59,
       83, 38, 74, 27, 30, 64, 84, 16, 77, 95, 61, 33,  5, 37, 44, 46, 48,
       54, 82, 76, 92, 57, 10, 60, 53, 47, 56, 41,  8, 26, 91,  0, 93, 11,
        2,  3, 94, 86, 32, 43, 88, 35, 96, 79, 51, 21, 15,  6,  4])

In [61]: A
Out[61]: 
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
       34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
       51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
       68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
       85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99])

Bei zufälliger Auswahl von 5 von 100

In [62]: A[x][:5]
Out[62]: array([14, 36, 70, 75,  7])

Wenn Sie Daten mit der angegebenen Wahrscheinlichkeit aus der Liste auswählen möchten

numpy.random.choice(a, size=None, replace=True, p=None)

In [98]: Data = ['A','B','C','D','E']

In [99]: np.random.choice(Data, 10, p=[0.1, 0.4, 0.2, 0.1, 0.2])
Out[99]: 
array(['D', 'B', 'B', 'D', 'B', 'B', 'E', 'B', 'E', 'D'], 
      dtype='|S1')

In [100]: x = np.random.choice(Data, 10000, p=[0.1, 0.4, 0.2, 0.1, 0.2])

choice.png

h = dict((c, (x==c).sum()/float(len(x))) for c in x)
fig, ax = plt.subplots()
ind = np.arange(len(Data))
ax.set_xticklabels(Data)
ax.set_xticks(ind + 0.5)
ax.bar(ind, [h[k] for k in Data])

Recommended Posts

[Python] Zufällige Verarbeitung (erstellen, auswählen, sortieren)
[Python] Sortieren
Python #sort
Erstellen Sie eine zufällige Zeichenfolge in Python
Python-Bildverarbeitung
Python-Dateiverarbeitung
Python verteilte Verarbeitung Spartan
Dateiverarbeitung in Python
Python: Verarbeitung natürlicher Sprache
Kommunikationsverarbeitung durch Python
Multithread-Verarbeitung in Python
Erstellen Sie ein Python-Modul
Blasensortierung in Python
Erstellen Sie Ihr eigenes Random Dot Stereogram (RDS) in Python.
[Python] Erstellen Sie mehrere Verzeichnisse
Erstellen Sie Spatia Lite in Python
Python selbst erstellte Klassensortierung
Erste Python-Bildverarbeitung
Zufälliger Spaziergang in Python
Textverarbeitung mit Python
[Memo] Python 3-Listensortierung
Verarbeitung in Python beenden
[Linux] DICOM-Sortierprozess
Zufällige String-Generierung (Python)
Python-Spickzettel
Bildverarbeitung mit Python
Benutzerdefinierte Sortierung in Python3
[Python] Sammlungstypen sortieren
Erstellen Sie eine Python-Umgebung
Abbildung zur Verarbeitung von Python-Zeichenfolgen
Verschiedene Verarbeitung von Python
Bildverarbeitung mit Python (Teil 2)
100 Sprachverarbeitungsklopfen mit Python 2015
Balanced Random Forest in Python
UTF8-Textverarbeitung mit Python
Python-Modul-Importe alphabetisch sortieren
Erstellen Sie ein Wox-Plugin (Python)
python3 Messen Sie die Verarbeitungsgeschwindigkeit.
Erstellen Sie eine Funktion in Python
"Apple-Verarbeitung" mit OpenCV3 + Python3
Erstellen Sie ein Wörterbuch in Python
Sortieren Sie den Pfad natürlich in Python
Erstellen Sie ein 3D-GIF mit Python3
Python Basic Dikt Sortierreihenfolge
ToDo-Listenerstellung [Python Django]
Akustische Signalverarbeitung mit Python (2)
Sortieren Sie große Dateien mit Python
Asynchrone Verarbeitung (Threading) in Python
100 Sprachverarbeitung Knock Kapitel 1 (Python)
100 Sprachverarbeitung Knock Kapitel 2 (Python)
Verwenden Sie Random Forest mit Python
Absteigende Sorte mit Mongodb in Python
Bildverarbeitung mit Python (Teil 1)
Erstellen Sie JIRA-Tickets mit Python
Erstellen Sie ein Python-Numpy-Array
Bildverarbeitung mit Python (3)
Python-Anfänger organisieren Blasensorten
Bildverarbeitung mit Python (Pillow)
Nachbearbeitung von Python (NG)