numpy

2012-08-08 21 views
14

में एक सीमा पर यादृच्छिक फ्लोट नमूनाकरण मैं अंडाकार में एक अंतराल [ए, बी] पर यादृच्छिक फ्लोट का नमूना कैसे लगा सकता हूं? न केवल पूर्णांक, बल्कि वास्तविक संख्याएं। उदाहरण के लिए,numpy

random_float(5, 10)

[5, 10] के बीच यादृच्छिक संख्या वापसी होगी। धन्यवाद।

उत्तर

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

बिना किसी बेवकूफ के आप इसे यादृच्छिक मॉड्यूल के साथ कर सकते हैं।

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 तक से (ऊपरी अनन्य बाध्य) देता है। इसे किसी संख्या से गुणा करके इसे अधिक रेंज मिलती है। पूर्व random.random()*5 0 से 5 तक की संख्या लौटाता है। इसमें कोई संख्या जोड़ना कम बाध्य प्रदान करता है। random.random()*5 +10 10 से 15 तक की संख्या लौटाता है। मुझे यकीन नहीं है कि आप इसे नमस्ते का उपयोग करके क्यों करना चाहते हैं, लेकिन शायद मैंने आपके इरादे को गलत समझा है।

+0

क्यों 'random.uniform' का उपयोग न करें? – DSM

+0

ईडीएसएम ईमानदारी से, क्योंकि मुझे इसके बारे में पता नहीं था –