2012-05-28 18 views
13

के लिए सरणी जांचें मैं कैसे निर्धारित कर सकता हूं कि एक Numpy सरणी में एक स्ट्रिंग है या नहीं? जहां 8 स्ट्रिंग में वर्णों की संख्या दर्शाता हैNumpy: स्ट्रिंग डेटा प्रकार

a = np.array('hi world') 

में सरणी a, डेटा प्रकार dtype('|S8') है।

मुझे नहीं लगता कि नियमित अभिव्यक्ति (जैसे re.match('\|S\d+', a.dtype)) यहां काम करेगी क्योंकि डेटा प्रकार केवल '|S8' नहीं है।

चीयर्स, निको

उत्तर

15
a.dtype.char == 'S' 

या

a.dtype.type is np.string_ 

NumPy docs, Data type objects, Attributes देखें।

+1

मैंने देखा कि वहाँ भी a.dtype.kind == 'एस' है। मिठाई! –

+0

बस एक नोट: ऐसा लगता है कि इसे Python 3.x –

+0

में पायथन 2.x _and_ 3.x के लिए 'a.dtype.type np.str_' होना आवश्यक है, आप' a.dtype.kind 'के विरुद्ध परीक्षण कर सकते हैं {' यू ',' एस '}' तार और यूनिकोड पकड़ने के लिए। – Chipmuenk

संबंधित मुद्दे