मैं इसके साथ कुछ भी जटिल करने की कोशिश करने से पहले संख्यात्मक व्यवहार का अध्ययन करने के लिए 6 पैरामीटर फ़ंक्शन के पैरामीटर स्थान पर चलाने की कोशिश कर रहा हूं, इसलिए मैं ऐसा करने के लिए एक कुशल तरीका खोज रहा हूं।
मेरा फंक्शन फ्लोट वैल्यू लेता है जिसे इनपुट के रूप में 6-डिम्पी के रूप में दिया गया है। शुरू में मैंने जो करने की कोशिश की वह यह थी:
पहले मैंने एक फ़ंक्शन बनाया जो 2 सरणियों को लेता है और दो सरणियों से मूल्यों के सभी संयोजनों के साथ एक सरणी उत्पन्न करता है
from numpy import *
def comb(a,b):
c = []
for i in a:
for j in b:
c.append(r_[i,j])
return c
तब मैं reduce()
उसी सरणी की प्रतियों के लिए आवेदन करता था:
def combs(a,m):
return reduce(comb,[a]*m)
और फिर मैं इस तरह से अपने कार्य का मूल्यांकन करता हूं:
values = combs(np.arange(0,1,0.1),6)
for val in values:
print F(val)
यह काम करता है लेकिन यह बहुत धीमी गति से होता है। मुझे पता है कि मापदंडों का स्थान बहुत बड़ा है, लेकिन यह इतना धीमा नहीं होना चाहिए। मैंने इस उदाहरण में केवल 10 6 (एक मिलियन) अंक लिए हैं और सरणी बनाने में सिर्फ 15 सेकंड से अधिक समय लगा है values
।
क्या आप सुन्न के साथ ऐसा करने का कोई और कुशल तरीका जानते हैं?
F
यदि आवश्यक हो तो मैं फ़ंक्शन को ले जाने के तरीके को संशोधित कर सकता हूं ।