NumPy का numpy.outer() फंक्शन दो वैक्टर्स का आउटर प्रोडक्ट (बाहरी गुणनफल) निकालता है। आउटर प्रोडक्ट में पहले वैक्टर के प्रत्येक एलिमेंट को दूसरे वैक्टर के प्रत्येक एलिमेंट से गुणा किया जाता है।
सिंटैक्स
numpy.outer(a, b, out=None)
- a: पहला इनपुट वैक्टर (1D ऐरे, फ्लैट किया जाता है)।
- b: दूसरा इनपुट वैक्टर (1D ऐरे, फ्लैट किया जाता है)।
- out: वैकल्पिक आउटपुट ऐरे।
- वापसी: आकार
(len(a), len(b))का 2D ऐरे।
गणितीय परिभाषा
दो वैक्टर्स a = [a₀, a₁, ..., aₘ] और b = [b₀, b₁, ..., bₙ] के लिए:
outer(a, b) = [[a₀b₀, a₀b₁, ..., a₀bₙ],
[a₁b₀, a₁b₁, ..., a₁bₙ],
...
[aₘb₀, aₘb₁, ..., aₘbₙ]]
उदाहरण
import numpy as np
# दो 1D ऐरे
arr1 = np.array([5, 10, 15])
arr2 = np.array([20, 25, 30])
print("वेक्टर 1:", arr1)
print("वेक्टर 2:", arr2)
print("वेक्टर 1 डायमेंशन्स:", arr1.ndim)
print("वेक्टर 2 डायमेंशन्स:", arr2.ndim)
print("वेक्टर 1 आकार:", arr1.shape)
print("वेक्टर 2 आकार:", arr2.shape)
# आउटर प्रोडक्ट
outer_product = np.outer(arr1, arr2)
print("\nआउटर प्रोडक्ट:\n", outer_product)
आउटपुट
वेक्टर 1: [ 5 10 15]
वेक्टर 2: [20 25 30]
वेक्टर 1 डायमेंशन्स: 1
वेक्टर 2 डायमेंशन्स: 1
वेक्टर 1 आकार: (3,)
वेक्टर 2 आकार: (3,)
आउटर प्रोडक्ट:
[[100 125 150]
[200 250 300]
[300 375 450]]
चरण-दर-चरण गणना
| 20 | 25 | 30 | |
|---|---|---|---|
| 5 | 100 | 125 | 150 |
| 10 | 200 | 250 | 300 |
| 15 | 300 | 375 | 450 |
उच्च-आयामी ऐरे के साथ (ऑटो-फ्लैटेंड)
# 2D ऐरे - स्वचालित रूप से फ्लैट हो जाएंगे
mat1 = np.array([[1, 2], [3, 4]]) # आकार (2, 2)
mat2 = np.array([[5, 6], [7, 8]]) # आकार (2, 2)
result = np.outer(mat1, mat2)
print("आकार:", result.shape) # (4, 4) - दोनों 4 एलिमेंट्स में फ्लैट
print("परिणाम:\n", result)
आउटर प्रोडक्ट बनाम इनर प्रोडक्ट बनाम मैट्रिक्स गुणन
| ऑपरेशन | फंक्शन | इनपुट | आउटपुट आकार | विवरण |
|---|---|---|---|---|
| आउटर प्रोडक्ट | np.outer(a, b) | (M,), (N,) | (M, N) | प्रत्येक जोड़ी का गुणनफल |
| इनर प्रोडक्ट | np.inner(a, b) | (M,), (N,) | () स्केलर | Σ aᵢbᵢ (डॉट प्रोडक्ट) |
| मैट्रिक्स गुणन | a @ b | (M, K), (K, N) | (M, N) | रो-कॉलम डॉट प्रोडक्ट्स |
| क्रॉस प्रोडक्ट | np.cross(a, b) | (3,), (3,) | (3,) | केवल 3D वैक्टर्स |