2017-10-27 5 views
0

ich eine 2D gleichmäßig zufällige Anordnung in numpy erstellen möchten, die so etwas wie ist:Numpy Zufalls 2D-Array

A=[[a1,b1], 
    [a2,b2], 
    [a99,b99]] 

Aber ich möchte die Werte der A-Säule zwischen einem bestimmten Bereich (etwa zwischen 1-10) und Werte von B in einem anderen Bereich (sagen wir 11-20).

Wie würde dies in Python erhalten werden.

Danke

+0

Wie ist die Form des Ausgangsarrays? – Divakar

+0

Das Array enthält 500 Zeilen und 2 Spalten. (Spalte 1 liegt im Bereich 1-10; Spalte 2 im Bereich 11-20) – uniQ

Antwort

1

Zwei Möglichkeiten.

Wir stapeln können zwei zufällige Arrays mit richtig zugewiesen low und high Werten -

In [39]: n = 10000 # no. of rows 

In [40]: np.c_[np.random.randint(1,11,(n)), np.random.randint(11,21,(n))] 
Out[40]: 
array([[ 6, 19], 
     [ 8, 18], 
     [ 6, 11], 
     ..., 
     [ 5, 12], 
     [10, 16], 
     [ 7, 17]]) 

In [41]: _.min(0), _.max(0) # verify 
Out[41]: (array([ 1, 11]), array([10, 20])) 

Einer anderen wäre 2D zufälliges Array mit [1,10] Intervall zu erstellen und dann 10 für die zweite Spalte Offsetzumischung, damit wir [11,20] bekommen Intervall dafür -

In [42]: np.random.randint(1,11,(n,2)) + [0,10] 
Out[42]: 
array([[10, 16], 
     [ 9, 12], 
     [ 4, 17], 
     ..., 
     [ 7, 15], 
     [ 5, 11], 
     [ 4, 14]]) 

In [43]: _.min(0), _.max(0) # verify 
Out[43]: (array([ 1, 11]), array([10, 20]))