2012-08-08 306 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()返回float從0到1(上限排斥)。把它乘以一個數字會給它一個更大的範圍。例如,random.random()*5返回0到5之間的數字。向此添加數字會提供一個下限。 random.random()*5 +10返回10到15之間的數字。我不確定爲什麼要用numpy完成這個操作,但也許我誤解了你的意圖。

+0

爲什麼不簡單地使用'random.uniform'? – DSM 2012-08-08 22:35:59

+0

@DSM老實說,因爲我不知道它 – 2012-08-09 01:43:12