NumPy का numpy.square() फंक्शन ऐरे के प्रत्येक एलिमेंट का वर्ग (x²) निकालता है। यह x * x या x ** 2 के बराबर है लेकिन अधिक पठनीय और कभी-कभी तेज़ होता है।
सिंटैक्स और पैरामीटर्स
numpy.square(x, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj])
- x: इनपुट ऐरे या स्केलर।
- out: वैकल्पिक आउटपुट ऐरे।
- where: वैकल्पिक मास्क ऐरे।
- वापसी: इनपुट के समान आकार और dtype का ऐरे जिसमें प्रत्येक एलिमेंट का वर्ग हो।
उदाहरण: इंटीजर ऐरे
import numpy as np
# 2D इंटीजर ऐरे
arr = np.array([[25, -50, 75], [-90, 81, 64]])
print("मूल ऐरे:\n", arr)
print("\nडायमेंशन्स:", arr.ndim)
print("डेटा टाइप:", arr.dtype)
# एलिमेंट-वाइज़ वर्ग
squared = np.square(arr)
print("\nवर्ग परिणाम:\n", squared)
आउटपुट
मूल ऐरे:
[[ 25 -50 75]
[-90 81 64]]
डायमेंशन्स: 2
डेटा टाइप: int64
वर्ग परिणाम:
[[ 625 2500 5625]
[8100 6561 4096]]
विभिन्न डेटा टाइप्स के साथ
# फ्लोट ऐरे
float_arr = np.array([1.5, -2.5, 3.0])
print("फ्लोट:", np.square(float_arr)) # [2.25 6.25 9.0]
# कॉम्प्लेक्स ऐरे
complex_arr = np.array([1+2j, 3-4j])
print("कॉम्प्लेक्स:", np.square(complex_arr)) # [-3.+4.j -7.-24.j]
# बूलियन ऐरे (True=1, False=0)
bool_arr = np.array([True, False, True])
print("बूलियन:", np.square(bool_arr)) # [1 0 1]
square() बनाम ** 2 बनाम multiply()
import numpy as np
import time
arr = np.random.rand(1000000)
# प्रदर्शन तुलना
start = time.time()
r1 = np.square(arr)
t1 = time.time() - start
start = time.time()
r2 = arr ** 2
t2 = time.time() - start
start = time.time()
r3 = np.multiply(arr, arr)
t3 = time.time() - start
print(f"np.square: {t1:.4f}s")
print(f"arr ** 2: {t2:.4f}s")
print(f"np.multiply: {t3:.4f}s")
print("सभी समान:", np.allclose(r1, r2) and np.allclose(r2, r3))
आउटपुट (विशिष्ट)
np.square: 0.0012s
arr ** 2: 0.0011s
np.multiply: 0.0013s
सभी समान: True
उपयोग के मामले
- यूक्लिडियन दूरी गणना:
np.sqrt(np.sum(np.square(a - b)))। - वेरिएंस गणना:
np.mean(np.square(x - np.mean(x)))। - मशीन लर्निंग में L2 रेगुलराइजेशन।
- फिजिक्स सिमुलेशन में ऊर्जा गणना।
संबंधित फंक्शन्स
np.sqrt()— वर्गमूलnp.power(x, n)— सामान्य घातnp.abs()— निरपेक्ष मान (कॉम्प्लेक्स के लिए मॉड्यूलस)np.square()— विशेष रूप से वर्ग के लिए अनुकूलित
नोट
इंटीजर ऐरे के लिए, परिणाम ओवरफ्लो हो सकता है (उदाहरण: int8 में 200² ओवरफ्लो)। आवश्यकता पड़ने पर dtype पैरामीटर से आउटपुट टाइप नियंत्रित करें।