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

Python में दो बहु-आयामी सरणियों का बाह्य गुणनफल प्राप्त करें

विवरण

numpy.outer() फंक्शन बहु-आयामी सरणियों को फ्लैट (1-D में परिवर्तित) करके उनका बाह्य गुणनफल गणना करता है। इनपुट सरणियों के आकार मायने नहीं रखते; दोनों को फ्लैट किया जाता है।

चरण

import numpy as np

# दो 2-D नंपाई ऐरे बनाएं
arr1 = np.array([[5, 10], [15, 20]])
arr2 = np.array([[6, 12], [18, 24]])

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.outer(arr1, arr2))

पूर्ण उदाहरण

import numpy as np

# दो 2-D नंपाई ऐरे बनाएं
arr1 = np.array([[5, 10], [15, 20]])
arr2 = np.array([[6, 12], [18, 24]])

# ऐरे प्रदर्शित करें
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.outer(arr1, arr2))

आउटपुट

ऐरे1...
[[ 5 10]
 [15 20]]
ऐरे2...
[[ 6 12]
 [18 24]]
ऐरे1 के आयाम...
2
ऐरे2 के आयाम...
2
ऐरे1 का आकार...
(2, 2)
ऐरे2 का आकार...
(2, 2)
परिणाम (बाह्य गुणनफल)...
[[ 30  60  90 120]
 [ 60 120 180 240]
 [ 90 180 270 360]
 [120 240 360 480]]

व्याख्या

दोनों ऐरे फ्लैट हो जाते हैं:

  • arr1.ravel() = [5, 10, 15, 20]
  • arr2.ravel() = [6, 12, 18, 24]

परिणाम 4×4 मैट्रिक्स जहां result[i,j] = arr1_flat[i] * arr2_flat[j]।

आकार नियम

  • इनपुट: a आकार (...), b आकार (...)
  • फ्लैट आकार: a.size, b.size
  • आउटपुट आकार: (a.size, b.size)

तुलना: outer बनाम kron बनाम मैट्रिक्स गुणन

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])

# outer: दोनों फ्लैट, परिणाम (4, 4)
np.outer(a, b)

# kron: क्रोनेकर गुणनफल, परिणाम (4, 4) लेकिन अलग संरचना
np.kron(a, b)  # [[5,6,10,12], [7,8,14,16], [15,18,20,24], [21,24,28,32]]

# मैट्रिक्स गुणनफल: आकार संगत होना चाहिए
a @ b  # [[19, 22], [43, 50]] - आकार (2, 2)

मुख्य बिंदु

  • outer हमेशा इनपुट को फ्लैट करता है, उनकी मूल संरचना को अनदेखा करता है
  • संरक्षित संरचना वाले टेन्सर गुणनफल के लिए kron या einsum का उपयोग करें
  • आउटपुट हमेशा 2-D होता है
  • मेमोरी: आउटपुट आकार a.size * b.size - बड़े ऐरे के लिए महंगा हो सकता है
  1. - पायथन में 4D और 3D आयाम वाली सरणियों का क्रोनेकर प्रोडक्ट प्राप्त करना

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

  1. - पायथन में दो सरणियों के एलिमेंट्स के उत्पाद का k-वां सबसे बड़ा मान ढूंढने का प्रोग्राम

    मान लीजिए हमें दो लिस्ट p और q दी गई हैं जिनमें कुछ इंटीजर नंबर हैं। हमें इन लिस्ट के सभी मानों को गुणा करना है और गुणन परिणामों से k-वां सबसे बड़ा मान ढूंढना है। इसलिए, यदि इनपुट p = [2, 5], q = [6, 8], k = 2 है, तो आउटपुट 16 होगा। गुणन परिणाम हैं: 2 * 6 = 12, 2 * 8 = 16, 5 * 6 = 30, 5 * 8 = 40। द

  1. - पायथन में दो सरणियों का प्रतिच्छेदन II

    मान लीजिए हमारे पास दो सरणी A और B हैं, इन सरणियों में कुछ तत्व हैं। हमें उनका प्रतिच्छेदन ढूंढना है। उदाहरण के लिए, यदि A = [1, 4, 5, 3, 6], और B = [2, 3, 5, 7, 9], तो प्रतिच्छेदन [3, 5] होगा। हल करने के चरण दो सरणी A और B लें यदि A की लंबाई B की लंबाई से छोटी है, तो उन्हें स्वैप करें सरणी में तत