Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में सरणी-जैसे अक्षों के साथ अलग-अलग आयामों वाली सरणियों का टेंसर डॉट उत्पाद गणना करें

परिचय

पायथन में अलग-अलग आयामों वाली सरणियों का टेंसर डॉट उत्पाद गणना करने के लिए, numpy.tensordot() विधि का उपयोग करें। axes पैरामीटर में दो सरणियों के अक्षों के जोड़े निर्दिष्ट किए जा सकते हैं जिन पर योग करना है।

पैरामीटर्स

  • a, b: टेंसर जिनका डॉट उत्पाद लेना है।
  • axes: अक्षों के जोड़े की सरणी ([a_axes, b_axes])। निर्दिष्ट करता है कि किन अक्षों पर योग करना है।

चरण-दर-चरण उदाहरण

आवश्यक लाइब्रेरी आयात करें

import numpy as np

अलग-अलग आयामों वाली दो सरणी बनाएं

arr1 = np.array(range(1, 9))
arr1.shape = (2, 2, 2)
arr2 = np.array(('p', 'q', 'r', 's'), dtype=object)
arr2.shape = (2, 2)

सरणियों की जानकारी प्रदर्शित करें

print("सरणी 1...\n", arr1)
print("\nसरणी 2...\n", arr2)
print("\nसरणी 1 के आयाम...\n", arr1.ndim)
print("\nसरणी 2 के आयाम...\n", arr2.ndim)
print("\nसरणी 1 का आकार...\n", arr1.shape)
print("\nसरणी 2 का आकार...\n", arr2.shape)

टेंसर डॉट उत्पाद की गणना करें (axes=((0,1),(0,1)))

print("\nटेंसर डॉट उत्पाद...\n", np.tensordot(arr1, arr2, ((0, 1), (0, 1))))

पूर्ण कोड उदाहरण

import numpy as np

# अलग-अलग आयामों वाली दो सरणी बनाएं
arr1 = np.array(range(1, 9))
arr1.shape = (2, 2, 2)
arr2 = np.array(('p', 'q', 'r', 's'), dtype=object)
arr2.shape = (2, 2)

# सरणी प्रदर्शित करें
print("सरणी 1...\n", arr1)
print("\nसरणी 2...\n", arr2)
print("\nसरणी 1 के आयाम...\n", arr1.ndim)
print("\nसरणी 2 के आयाम...\n", arr2.ndim)
print("\nसरणी 1 का आकार...\n", arr1.shape)
print("\nसरणी 2 का आकार...\n", arr2.shape)

# टेंसर डॉट उत्पाद की गणना करें
print("\nटेंसर डॉट उत्पाद...\n", np.tensordot(arr1, arr2, ((0, 1), (0, 1))))

आउटपुट

सरणी 1...
 [[[1 2]
   [3 4]]

  [[5 6]
   [7 8]]]
सरणी 2...
 [['p' 'q']
  ['r' 's']]
सरणी 1 के आयाम...
 3
सरणी 2 के आयाम...
 2
सरणी 1 का आकार...
 (2, 2, 2)
सरणी 2 का आकार...
 (2, 2)
टेंसर डॉट उत्पाद...
 ['pqqqrrrrrsssssss' 'ppqqqqrrrrrrssssssss']

व्याख्या: axes=((0,1),(0,1)) का अर्थ है arr1 के अक्ष 0 और 1 को arr2 के अक्ष 0 और 1 के साथ संकुचित करें। arr1 के पहले दो आयाम (2,2) और arr2 के दोनों आयाम (2,2) मेल खाते हैं। परिणाम arr1 के शेष अक्ष (आकार 2) के साथ एक सरणी है जहां स्ट्रिंग संयोजन दिखाता है कि गुणन कैसे हुआ।

  1. - Python में अलग-अलग डायमेंशन्स के दो वैक्टर्स का क्रॉस प्रोडक्ट निकालें

    NumPy का numpy.cross() फंक्शन दो वैक्टर्स का क्रॉस प्रोडक्ट (वेक्टर गुणनफल) निकालता है। यह अलग-अलग डायमेंशन्स (2D और 3D) के वैक्टर्स को भी हैंडल कर सकता है — छोटे वैक्टर को शून्य से पैड किया जाता है। सिंटैक्स और पैरामीटर्स numpy.cross(a, b, axisa=-1, axisb=-1, axisc=-1, axis=None) a, b: इनपुट व

  1. - Python में दो मल्टी-डायमेंशनल ऐरे का इनर प्रोडक्ट निकालें

    NumPy का numpy.inner() फंक्शन दो मल्टी-डायमेंशनल ऐरे का इनर प्रोडक्ट निकालता है। 1D के लिए डॉट प्रोडक्ट, उच्च आयामों के लिए अंतिम अक्ष पर सम-गुणनफल। सिंटैक्स numpy.inner(a, b) a, b: इनपुट ऐरे। नॉन-स्केलर होने पर अंतिम आयाम समान होना चाहिए। वापसी: आकार a.shape[:-1] + b.shape[:-1] का ऐरे। 2D

  1. - पायथन में 4D और 3D आयाम वाली सरणियों का क्रोनेकर प्रोडक्ट प्राप्त करना

    4D और 3D आयाम वाली सरणी का क्रोनेकर प्रोडक्ट प्राप्त करने के लिए, पायथन NumPy में numpy.kron() विधि का उपयोग करें। क्रोनेकर प्रोडक्ट की गणना करें, जो दूसरी सरणी के ब्लॉकों से बनी एक समग्र सरणी है जिसे पहली सरणी द्वारा स्केल किया गया है। यह फ़ंक्शन मानता है कि a और b के आयामों की संख्या समान है, यदि