2012-08-08 12 views

答えて

26

uniform distributionはおそらくあなたが求めていることをするでしょう。

np.random.uniform(5,10) # A single value 
np.random.uniform(5,10,[2,3]) # A 2x3 array 
4
import numpy as np 
>>> 5 + np.random.sample(10) * 5 
array([ 7.14292096, 6.84837089, 6.38203972, 8.80365208, 9.06627847, 
     5.69871186, 6.37734538, 9.60618347, 9.34319843, 8.63550653]) 
1

numpyなしでこれをランダムモジュールで行うことができます。

import random 
random.random()*5 + 10 

関数として、範囲10〜15の数字が返されます。

>>> import random 
>>> def random_float(low, high): 
...  return random.random()*(high-low) + low 
... 
>>> random_float(5,10) 
9.3199502283292208 
>>> random_float(5,10) 
7.8762002129171185 
>>> random_float(5,10) 
8.0522023132650808 

random.random()(上排他的に結合した)0から1にフロートを返します。それを数で掛ければ、より広い範囲が得られます。 ex random.random()*5は0から5までの数値を返します。これに数値を追加すると下限が得られます。 random.random()*5 +10は10から15までの数字を返します。なぜnumpyを使ってこれを行うのかは分かりませんが、おそらく私はあなたの意図を誤解しています。

+0

単に 'random.uniform'を使わないのはなぜですか? – DSM

+0

@DSM正直なところ、私はそれについて知らなかったので –