2 NumPy सरणी होने की कल्पना कीजिए:क्या कोई नुकीला/scipy डॉट उत्पाद है, परिणाम की केवल विकर्ण प्रविष्टियों की गणना?
> A, A.shape = (n,p)
> B, B.shape = (p,p)
आमतौर पर पी, एक छोटी संख्या (पी < = 200) है, जबकि एन मनमाने ढंग से बड़ा हो सकता है।
मैं निम्नलिखित कर रहा हूँ:
result = np.diag(A.dot(B).dot(A.T))
आप देख सकते हैं, मैं सिर्फ n विकर्ण प्रविष्टियों रख रहा हूँ, लेकिन वहाँ एक मध्यवर्ती (एन एक्स एन) सरणी गणना की है जहाँ से केवल विकर्ण प्रविष्टियों रखा जाता है।
मैं diag_dot() जैसे फ़ंक्शन की कामना करता हूं, जो केवल परिणाम की विकर्ण प्रविष्टियों की गणना करता है और पूर्ण स्मृति आवंटित नहीं करता है।
एक परिणाम होगा:
> result = diag_dot(A.dot(B), A.T)
वहाँ इस तरह एक premade कार्यक्षमता है और इस कुशलता से मध्यवर्ती (एन एक्स एन) सरणी आवंटित करने के लिए आवश्यकता के बिना किया जा सकता है?
+1 स्मार्ट बीजगणित हमेशा परिष्कृत एल्गोरिदम से बेहतर है। – Jaime