मैं एन बाहरी उत्पादों की गणना करने के लिए एक तेज़ तरीका ढूंढ रहा हूं।पायथन - बाहरी उत्पादों को समस्त करने का तेज़ तरीका?
अनिवार्य रूप से, मैं सामान्य वितरण से उत्पन्न दो मैट्रिक्स के साथ शुरू - वी तत्वों के साथ वैक्टर n देखते हैं:
A = np.random.normal(size = (n, v))
B = np.random.normal(size = (n, v))
मैं चाहता क्या एक में आकार वी के प्रत्येक वेक्टर के बाहरी उत्पादों की गणना करने के लिए है और बी और उन्हें एक साथ जोड़ो।
ध्यान दें कि A * B.T
काम नहीं करता है - ए आकार एन एक्स वी है जबकि बी आकार v x n है।
सबसे अच्छा मैं कर सकता हूं एक लूप बनाना जहां बाहरी उत्पादों का निर्माण किया गया है, फिर बाद में सम्मिलित किया गया। मैं यह इसलिए की तरह है:
outers = np.array([A[i] * B[i].T])
यह एक n एक्स वी एक्स वी सरणी बनाता है, जो मैं तो np.sum(outers, axis = 0)
का उपयोग करके एक साथ जोड़ सकते हैं (पाश सूची समझ, जो बाद में एक सरणी में बदल जाता है के भीतर है)। हालांकि, यह काफी धीमी है, और मैं सोच रहा था कि एक वेक्टरीकृत फ़ंक्शन है जिसका उपयोग मैं इसे गति देने के लिए कर सकता था।
अगर किसी के पास कोई सलाह है, तो मैं वास्तव में इसकी सराहना करता हूं!
ईन्सम खूबसूरती से काम करता है। धन्यवाद! – Adam