NumPy 1.14 - numpy.matmul()

numpy.matmul




numpy

numpy.matmul

numpy.matmul(a, b, out=None)

दो सरणियों का मैट्रिक्स उत्पाद।

व्यवहार निम्नलिखित तरीके से तर्कों पर निर्भर करता है।

  • यदि दोनों तर्क 2-डी हैं तो उन्हें पारंपरिक मैट्रिस की तरह गुणा किया जाता है।
  • यदि या तो तर्क एनडी, एन> 2 है, तो इसे पिछले दो अनुक्रमों में रहने वाले मेट्रिक्स के ढेर के रूप में माना जाता है और तदनुसार प्रसारित किया जाता है।
  • यदि पहला तर्क 1-डी है, तो इसके आयामों में 1 को प्रीपे करके मैट्रिक्स को बढ़ावा दिया जाता है। मैट्रिक्स गुणन के बाद पूर्वनिर्मित 1 हटा दिया जाता है।
  • यदि दूसरा तर्क 1-डी है, तो इसके आयामों में 1 जोड़कर मैट्रिक्स को बढ़ावा दिया जाता है। मैट्रिक्स गुणन के बाद संलग्न 1 हटा दिया जाता है।

एक स्केलर द्वारा गुणा करने की अनुमति नहीं है, इसके बजाय * उपयोग करें। ध्यान दें कि एक वेक्टर के साथ मैट्रिसेस के ढेर को गुणा करने से वैक्टर का एक स्टैक हो जाएगा, लेकिन मैटमुल इसे इस तरह से नहीं पहचान पाएगा।

matmul दो महत्वपूर्ण तरीकों से dot से भिन्न होता है।

  • स्केलर द्वारा गुणा करने की अनुमति नहीं है।
  • मैट्रिस के ढेरों को एक साथ प्रसारित किया जाता है जैसे कि मैट्रिस तत्व थे।

चेतावनी

यह फ़ंक्शन प्रारंभिक है और परीक्षण और प्रलेखन के लिए NumPy 1.10.0 में शामिल है। इसका शब्दार्थ नहीं बदलेगा, लेकिन वैकल्पिक तर्कों की संख्या और क्रम होगा।

संस्करण 1.10.0 में नया।

पैरामीटर:

a : array_like

पहला तर्क।

b : array_like

दूसरा तर्क।

बाहर : ndarray, वैकल्पिक

आउटपुट तर्क। यह ठीक उसी तरह का होना चाहिए जो उपयोग न होने पर वापस आ जाएगा। विशेष रूप से, इसके पास सही प्रकार होना चाहिए, C-contiguous होना चाहिए, और इसका dtype dtype होना चाहिए जो dot(a,b) लिए लौटाया जाएगा। यह एक प्रदर्शन विशेषता है। इसलिए, यदि ये स्थितियां पूरी नहीं हुई हैं, तो लचीला होने के प्रयास के बजाय, एक अपवाद उठाया जाता है।

यह दिखाता है:

आउटपुट : ndarray

b और b का डॉट उत्पाद लौटाता है। यदि a और b दोनों 1-डी सरणियां हैं, तो एक स्केलर वापस आ जाता है; अन्यथा एक सरणी वापस आ जाती है। अगर out दिया जाता है, तो उसे लौटा दिया जाता है।

जन्म देती है:

ValueError

यदि a का अंतिम आयाम b के दूसरे-से-अंतिम आयाम के समान आकार नहीं है।

यदि स्केलर मान पारित किया गया है।

यह भी देखें

vdot
जटिल-संयुग्मन डॉट उत्पाद।
tensordot
मनमाने अक्षों पर सम उत्पाद।
einsum
आइंस्टीन योग सम्मेलन।
dot
विभिन्न प्रसारण नियमों के साथ वैकल्पिक मैट्रिक्स उत्पाद।

टिप्पणियाँ

Matmul फ़ंक्शन PyPon 3.5 में PEP465 के बाद शुरू किए गए @ ऑपरेटर के शब्दार्थ को लागू करता है।

उदाहरण

2-डी सरणियों के लिए यह मैट्रिक्स उत्पाद है:

>>> a = [[1, 0], [0, 1]]
>>> b = [[4, 1], [2, 2]]
>>> np.matmul(a, b)
array([[4, 1],
       [2, 2]])

1-डी के साथ मिश्रित 2-डी के लिए, परिणाम सामान्य है।

>>> a = [[1, 0], [0, 1]]
>>> b = [1, 2]
>>> np.matmul(a, b)
array([1, 2])
>>> np.matmul(b, a)
array([1, 2])

प्रसारण सरणियों के ढेर के लिए पारंपरिक है

>>> a = np.arange(2*2*4).reshape((2,2,4))
>>> b = np.arange(2*2*4).reshape((2,4,2))
>>> np.matmul(a,b).shape
(2, 2, 2)
>>> np.matmul(a,b)[0,1,1]
98
>>> sum(a[0,1,:] * b[0,:,1])
98

वेक्टर, वेक्टर स्केलर आंतरिक उत्पाद लौटाता है, लेकिन न तो तर्क जटिल-संयुग्मित है:

>>> np.matmul([2j, 3j], [2j, 3j])
(-13+0j)

स्केलर गुणन एक त्रुटि उठाता है।

>>> np.matmul([1,2], 3)
Traceback (most recent call last):
...
ValueError: Scalar operands are not allowed, use '*' instead