विवरण
numpy.can_cast() फंक्शन जांचता है कि क्या दिए गए कास्टिंग नियम के अनुसार स्केलर या डेटा प्रकार को लक्ष्य डेटा प्रकार में कास्ट किया जा सकता है। यह बूलियन मान लौटाता है।
पैरामीटर्स
from_- कास्ट करने वाला स्केलर, डेटा प्रकार, या ऐरेto- लक्ष्य डेटा प्रकारcasting- कास्टिंग नियम (डिफ़ॉल्ट: 'safe')। विकल्प: 'no', 'equiv', 'safe', 'same_kind', 'unsafe'
कास्टिंग नियम
| नियम | विवरण |
|---|---|
'no' | कोई कास्टिंग नहीं (प्रकार समान होने चाहिए) |
'equiv' | केवल बाइट-ऑर्डर परिवर्तन |
'safe' | केवल सुरक्षित कास्ट (कोई परिशुद्धता हानि नहीं, डिफ़ॉल्ट) |
'same_kind' | सुरक्षित + समान प्रकार के भीतर (उदाहरण: float64→float32) |
'unsafe' | कोई भी कास्ट अनुमत |
चरण
import numpy as np
print("Numpy में can_cast() मेथड से जांच\n")
print("परिणाम...", np.can_cast(20, 'i1')) # True: 20 फिट होता है int8 में
print("परिणाम...", np.can_cast(280, 'i1')) # False: 280 > 127 (int8 मैक्स)
print("परिणाम...", np.can_cast(80, 'u1')) # True: 80 फिट होता है uint8 में
print("परिणाम...", np.can_cast(300.7, np.float32)) # True: float64→float32 safe
print("परिणाम...", np.can_cast(120.6, np.float64)) # True: समान प्रकार
print("परिणाम...", np.can_cast(7.2e100, np.float32)) # False: float32 मैक्स ~3.4e38
print("परिणाम...", np.can_cast(6.5e100, np.float64)) # True: float64 मैक्स ~1.8e308
पूर्ण उदाहरण
import numpy as np
# numpy.can_cast() मेथड जांचता है कि क्या स्केलर और डेटा प्रकार
# कास्टिंग नियम के अनुसार कास्ट हो सकते हैं।
print("Numpy में can_cast() मेथड से जांच\n")
print("परिणाम...", np.can_cast(20, 'i1'))
print("परिणाम...", np.can_cast(280, 'i1'))
print("परिणाम...", np.can_cast(80, 'u1'))
print("परिणाम...", np.can_cast(300.7, np.float32))
print("परिणाम...", np.can_cast(120.6, np.float64))
print("परिणाम...", np.can_cast(7.2e100, np.float32))
print("परिणाम...", np.can_cast(6.5e100, np.float64))
आउटपुट
Numpy में can_cast() मेथड से जांच
परिणाम... True
परिणाम... False
परिणाम... True
परिणाम... True
परिणाम... True
परिणाम... False
परिणाम... True
व्याख्या
20 → int8: True (रेंज -128 से 127)280 → int8: False (ओवरफ्लो)80 → uint8: True (रेंज 0 से 255)300.7 → float32: True (safe कास्ट, परिशुद्धता हानि संभव लेकिन मान फिट)120.6 → float64: True (समान प्रकार)7.2e100 → float32: False (float32 मैक्स ~3.4e38)6.5e100 → float64: True (float64 मैक्स ~1.8e308)
ऐरे के साथ उपयोग
arr = np.array([1, 2, 3], dtype=np.int32)
np.can_cast(arr, np.int16) # False (safe नहीं)
np.can_cast(arr, np.int16, casting='same_kind') # True
np.can_cast(arr, np.float64) # True (safe)
व्यावहारिक उपयोग
- डेटा प्रकार रूपांतरण से पहले सत्यापन
- मेमोरी अनुकूलन (छोटे dtype में फिट जांचना)
- उपयोगकर्ता इनपुट सत्यापन
- स्वचालित dtype अनुमान में