2012-08-28 12 views
7

के साथ यादृच्छिक संख्या के साथ बड़ी सरणी मुझे यादृच्छिक संख्याओं (10⁵ संख्याओं) के साथ एक बड़ी सरणी (या सूची) उत्पन्न करने की आवश्यकता है। मैं उस तरह कोशिश कर रहा था:पायथन

vet = random.sample(range(10),10000) 

फ़ाइल "/usr/lib/python2.7/random.py", लाइन 320, नमूना बढ़ाने में:

vet = random.sample(range(10),100000) 

लेकिन जब मैं चलाने का प्रयास ValueError ("जनसंख्या से बड़ा नमूना") ValueError: जनसंख्या

कोई समाधान?

tkns

+6

होना बहुत जरूरी है कि आप की तरह [numpy] एक सरणी पुस्तकालय विचार करना चाह सकते (http://numpy.scipy.org/) : 'आयात numpy; vet = numpy.random.randint (0, 10, 10000) ' – Snowball

उत्तर

19

तुम क्या चाहते

[random.random() for _ in xrange(100000)] 
random module documentation से

है:

random.sample(population, k) Return a k length list of unique elements chosen from the population sequence. Used for random sampling without replacement.

इसलिए जब 012 कॉलिंगआप लंबाई 10 के अनुक्रम में 100000 अद्वितीय तत्व निकालने का प्रयास कर रहे हैं जो स्पष्ट रूप से काम नहीं कर सकता है।

ध्यान दें कि

  • random.random() के बीच [0 एक अस्थायी मान देता है; 1)
  • random.randrange([start], stop[, step]) अनुक्रम range([start], stop[, step])
  • random.randint(a, b) [एक में एक पूर्णांक मान देता से एक यादृच्छिक तत्व देता है; ख]
  • जब random.sample का उपयोग कर, समानता len(population) >= k कि सूची के आकार को ध्यान में रखते
8

मुझे लगता है कि आप कुछ इस तरह के बाद कर रहे हैं:

vet = [random.randint(1,10) for _ in range(100000)]