NumPy का numpy.cross() फंक्शन दो वैक्टर्स का क्रॉस प्रोडक्ट (वेक्टर गुणनफल) निकालता है। यह अलग-अलग डायमेंशन्स (2D और 3D) के वैक्टर्स को भी हैंडल कर सकता है — छोटे वैक्टर को शून्य से पैड किया जाता है।
सिंटैक्स और पैरामीटर्स
numpy.cross(a, b, axisa=-1, axisb=-1, axisc=-1, axis=None)
- a, b: इनपुट वैक्टर्स (अंतिम आयाम 2 या 3 होना चाहिए)।
- axisa, axisb: वैक्टर को परिभाषित करने वाले अक्ष (डिफ़ॉल्ट -1: अंतिम)।
- axisc: परिणाम वैक्टर वाले अक्ष (डिफ़ॉल्ट -1)।
- axis: यदि दिया गया, तो
axisa, axisb, axiscओवरराइड करता है। - वापसी: क्रॉस प्रोडक्ट वैक्टर(एस)।
2D और 3D वैक्टर का क्रॉस प्रोडक्ट
import numpy as np
# 3D वैक्टर और 2D वैक्टर
arr1 = [13, 11, 19] # 3D
arr2 = [19, 10] # 2D (z=0 माना जाता है)
print("वेक्टर 1 (3D):", arr1)
print("वेक्टर 2 (2D):", arr2)
# क्रॉस प्रोडक्ट
result = np.cross(arr1, arr2)
print("\nक्रॉस प्रोडक्ट:\n", result)
आउटपुट
वेक्टर 1 (3D): [13, 11, 19]
वेक्टर 2 (2D): [19, 10]
क्रॉस प्रोडक्ट:
[-190 361 -79]
गणना विवरण
arr2 को [19, 10, 0] माना जाता है (z=0 पैड)।
a = [13, 11, 19]
b = [19, 10, 0]
a × b = [a₂b₃ - a₃b₂, a₃b₁ - a₁b₃, a₁b₂ - a₂b₁]
= [11×0 - 19×10, 19×19 - 13×0, 13×10 - 11×19]
= [0 - 190, 361 - 0, 130 - 209]
= [-190, 361, -79]
2D × 2D क्रॉस प्रोडक्ट (स्केलर)
a = [3, 4]
b = [1, 2]
result = np.cross(a, b)
print("2D क्रॉस प्रोडक्ट:", result) # 3*2 - 4*1 = 2 (स्केलर)
बैच क्रॉस प्रोडक्ट
# कई वैक्टर जोड़े
A = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]])
B = np.array([[0, 1, 0], [0, 0, 1], [1, 0, 0]])
# axis=1 के साथ (प्रत्येक रो एक वैक्टर)
result = np.cross(A, B, axis=1)
print("बैच क्रॉस प्रोडक्ट:\n", result)
# [[ 0 0 1]
# [ 1 0 0]
# [ 0 1 0]]
अक्ष नियंत्रण (axisa, axisb, axisc)
# ऐरे आकार (3, N) जहां कॉलम वैक्टर्स हैं
A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]).T # (3, 3)
B = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]]).T # (3, 3)
# axisa=0: अक्ष 0 के साथ वैक्टर्स (कॉलम)
result = np.cross(A, B, axisa=0, axisb=0, axisc=0)
print("कॉलम-वाइज़ क्रॉस:\n", result)
गुण
- एंटीकम्यूटेटिव:
a × b = - (b × a) - डिस्ट्रिब्यूटिव:
a × (b + c) = a × b + a × c - परिणाम लंबवत:
a · (a × b) = 0औरb · (a × b) = 0 - परिमाण:
|a × b| = |a||b|sin(θ)(समानांतर के लिए 0)
उपयोग के मामले
- 3D ज्यामिति: नॉर्मल वैक्टर, टॉर्क, एंगुलर मोमेंटम।
- कंप्यूटर ग्राफिक्स: फेस नॉर्मल्स, कैमरा ओरिएंटेशन।
- फिजिक्स: लोरेंज फोर्स, कोरिओलिस इफेक्ट।
- रोबोटिक्स: जॉइंट वेलोसिटी से एंड-इफेक्टर वेलोसिटी।