NumPy 1.14 - numpy.can_cast()

numpy.can_cast




numpy

numpy.can_cast

numpy.can_cast(from_, to, casting='safe')

रिटर्न सही है अगर कास्टिंग के नियम के अनुसार डेटा प्रकारों के बीच कास्ट हो सकता है। यदि एक स्केलर या सरणी स्केलर है, तो यह भी सही है अगर स्केलर का मान किसी पूर्णांक में अतिप्रवाह या छंटनी के बिना डाला जा सकता है।

पैरामीटर:

from_ : dtype, dtype स्पेसियर, स्केलर या सरणी

डेटा प्रकार, स्केलर, या सरणी से कास्ट करने के लिए।

को : dtype या dtype स्पेसियर

कास्ट करने के लिए डेटा प्रकार।

कास्टिंग : {'नहीं', 'इक्विव', 'सेफ', 'समान_किंडन', 'असुरक्षित'}, वैकल्पिक

नियंत्रित करता है कि किस प्रकार की डेटा कास्टिंग हो सकती है।

  • 'नहीं' का अर्थ है कि डेटा प्रकारों को बिल्कुल नहीं डाला जाना चाहिए।
  • 'इक्विव' का मतलब केवल बाइट-ऑर्डर परिवर्तन की अनुमति है।
  • s सुरक्षित ’का मतलब केवल वे ही जातियां हैं जो मूल्यों को संरक्षित कर सकती हैं।
  • 'same_kind' का अर्थ है केवल एक प्रकार के भीतर सुरक्षित जाति या जाति, जैसे कि float64 से float32 तक की अनुमति है।
  • 'असुरक्षित' का अर्थ है कि कोई भी डेटा रूपांतरण हो सकता है।
यह दिखाता है:

बाहर : बूल

सही है अगर कास्टिंग नियम के अनुसार कास्ट हो सकता है।

यह भी देखें

dtype , result_type

टिप्पणियाँ

NumPy 1.9 में शुरू, can_cast फ़ंक्शन अब पूर्णांक / फ्लोट dtype और स्ट्रिंग dtype के लिए 'सुरक्षित' कास्टिंग मोड में गलत लौटाता है यदि स्ट्रिंग dtype लंबाई एक स्ट्रिंग में परिवर्तित अधिकतम पूर्णांक / फ्लोट मान को संग्रहीत करने के लिए लंबे समय तक पर्याप्त नहीं है। पहले 'सुरक्षित' मोड में can_cast पूर्णांक / फ्लोट dtype और किसी भी लम्बाई के स्ट्रिंग dtype के लिए True लौटा है।

उदाहरण

मूल उदाहरण

>>> np.can_cast(np.int32, np.int64)
True
>>> np.can_cast(np.float64, complex)
True
>>> np.can_cast(complex, float)
False
>>> np.can_cast('i8', 'f8')
True
>>> np.can_cast('i8', 'f4')
False
>>> np.can_cast('i4', 'S4')
False

कास्टिंग स्केलर

>>> np.can_cast(100, 'i1')
True
>>> np.can_cast(150, 'i1')
False
>>> np.can_cast(150, 'u1')
True
>>> np.can_cast(3.5e100, np.float32)
False
>>> np.can_cast(1000.0, np.float32)
True

सरणी स्केलर मान की जाँच करता है, सरणी नहीं करता है

>>> np.can_cast(np.array(1000.0), np.float32)
True
>>> np.can_cast(np.array([1000.0]), np.float32)
False

कास्टिंग नियमों का उपयोग करना

>>> np.can_cast('i8', 'i8', 'no')
True
>>> np.can_cast('<i8', '>i8', 'no')
False
>>> np.can_cast('<i8', '>i8', 'equiv')
True
>>> np.can_cast('<i4', '>i8', 'equiv')
False
>>> np.can_cast('<i4', '>i8', 'safe')
True
>>> np.can_cast('<i8', '>i4', 'safe')
False
>>> np.can_cast('<i8', '>i4', 'same_kind')
True
>>> np.can_cast('<i8', '>u4', 'same_kind')
False
>>> np.can_cast('<i8', '>u4', 'unsafe')
True