मैं वर्तमान में एक प्रोजेक्ट पर काम कर रहा हूं जहां मुझे विरासत मैटलैब कोड (मैटलैब इंजन का उपयोग करके) और शेष पायथन (numpy) में प्रसंस्करण के कुछ चरणों की आवश्यकता है।मैटलैब इंजन सरणी को numpy ndarray में कुशलता से परिवर्तित करने के लिए कैसे?
मैंने देखा है कि numpy के numpy.ndarray
को मैटलैब का matlab.mlarray.double
से परिणाम परिवर्तित बुरी तरह धीमी गति से लगता है। निम्नलिखित समय
import timeit
setup_range = ("import numpy as np\n"
"x = range(1000)")
setup_arange = ("import numpy as np\n"
"x = np.arange(1000)")
setup_matlab = ("import numpy as np\n"
"import matlab.engine\n"
"eng = matlab.engine.start_matlab()\n"
"x = eng.linspace(0., 1000.-1., 1000.)")
print 'From other array'
print timeit.timeit('np.array(x)', setup=setup_arange, number=1000)
print 'From list'
print timeit.timeit('np.array(x)', setup=setup_range, number=1000)
print 'From matlab'
print timeit.timeit('np.array(x)', setup=setup_matlab, number=1000)
कौन लेता है::
From other array
0.00150722111994
From list
0.0705359556928
From matlab
7.0873282467
रूपांतरण के बारे में लेता है
यहाँ एक और ndarray, एक सूची और एक mlarray से 1000 तत्वों के साथ एक ndarray बनाने के लिए कुछ उदाहरण कोड है सूची से रूपांतरण के रूप में 100 गुना।
क्या रूपांतरण को गति देने का कोई तरीका है?