मेरे पास एक numpy सरणी ए है, जिसमें आकार (10,) है।मनमानी आयामों के सरणी के साथ numpy सरणी गुणा
मेरे पास भी है, इस पल के रूप में, आकार के साथ एक numpy सरणी बी (10,3,5)। मैं सी प्राप्त करने के लिए इन दोनों के बीच गुणा करना चाहता हूं जैसे सी [0,:,:] = ए [0] * बी [0,:,:], सी [1] = ए [1] * बी [1 ,:,:], आदि
मैं इसे लूप के साथ काम नहीं करना चाहता, एक कारण यह सौंदर्य की बात है, दूसरा यह है कि इस कोड को बहुत सामान्य होना चाहिए। मैं चाहता हूं कि जब तक अग्रणी आयाम 10 हो, तब तक उपयोगकर्ता किसी भी आकार के किसी भी बी को इनपुट करने में सक्षम होना चाहता है। उदाहरण के लिए, मैं चाहता हूं कि उपयोगकर्ता आकार के बी (10,4) में भी सक्षम हो।
तो: मैं numpy का उपयोग करके इस गुणा को कैसे कार्यान्वित कर सकता हूं? धन्यवाद।
अतिरिक्त: उदाहरण के लिए पूछा गया है। छोटा हो जाएगा। मान लें कि ए numpy सरणी है [1,2,3] और बी numpy सरणी [[1,2], [4,5], [7,8]] है। मैं चाहता हूं कि दोनों के गुणा [[1,2], [8,10], [21,24]] में हो। ...
>>> a
array([1, 2, 3])
>>> b
array([[1, 2],
[4, 5],
[7, 8]])
>>> #result
>>> c
array([[ 1, 2],
[ 8, 10],
[21, 24]])
>>>
शामिल करें, * छोटे *, उदाहरण के सरणियों और उम्मीद उत्पादन। – wwii
यदि 'बी'' (3,5,10) 'है, तो 'ए * बी' काम करता है।'numpy' स्वचालित रूप से आवश्यकतानुसार आयाम जोड़ता है (MATLAB उन्हें अंत में जोड़ता है)। – hpaulj
जैसा ऊपर बताया गया है, प्रसारण जोड़े जोड़े के दाएं-दाएं आयामों से। इसका मतलब है कि '(ए * बीटी) .' गुणा के लिए लंबाई 10s से मेल खाता है और एक सामान्य समाधान होगा, लेकिन मुझे लगता है कि डीएसएम द्वारा सुझाए गए' इन्सुम 'दृष्टिकोण तर्कसंगत रूप से अच्छे हैं। –