मैं कुछ डेटा विश्लेषण करने के लिए पाइथन और न्यूम्पी का उपयोग कर रहा हूं।3 डी सरणी पर कुशल पुनरावृत्ति?
मेरे पास एक बड़ा 3 डी मैट्रिक्स (एनएक्सएनएक्सएन) है, जहां प्रत्येक सेल फिर से एक मैट्रिक्स है, इस बार एक 3x3 मैट्रिक्स है। मैट्रिक्स data
कॉलिंग, यह इस तरह दिखता है:
data[N,N,N,3,3]
मैं सभी 3x3 eigenvalues के matrices खोजने की जरूरत है, और उस के लिए मैं Numpy के eigvals
नियमित उपयोग करें, लेकिन यह करने के लिए उम्र ले जाता है। अभी मैं इसे बहुत अधिक करता हूं:
for i in range(N):
for j in range(N):
for k in range(N):
a = np.linalg.eigvals(data[i,j,k,:,:])
एन = 256 के लिए, इसमें लगभग एक घंटे लगते हैं। इसे और अधिक कुशल बनाने के तरीके पर कोई विचार?
किसी भी सुझाव के लिए बहुत धन्यवाद!
क्या आपने प्रोफाइल किया है? मुझे संदेह है कि आप इगर्वल्स में ज्यादा समय बिता रहे हैं जितना आप पुनरावृत्त कर रहे हैं। – matt
eigvals मेरी टाइमिट गणनाओं द्वारा लंबे समय तक परिमाण के लगभग तीन आदेश लेता है, इसलिए मुझे नहीं लगता कि पुनरावृत्ति को बदलने से कुछ भी प्रभावित हो रहा है। – DSM