2012-05-28 25 views
13

için dizi denetleyin Bir Numpy dizisinin bir dize içerip içermediğini nasıl belirleyebilirim? 8 dize karakterlerin sayısına değinmektedir buradaNumpy: Dize veri türü

a = np.array('hi world') 

Dizi a, veri tipi dtype('|S8') sahiptir.

Veri türü yalnızca '|S8' olmadığı için normal ifadelerin (re.match('\|S\d+', a.dtype) gibi) burada nasıl çalışacağını anlamıyorum.

Alkış, Nico

cevap

15
a.dtype.char == 'S' 

veya

a.dtype.type is np.string_ 

NumPy docs, Data type objects, Attributes bakınız.

+1

Ayrıca bir.dtype.kind == 'S' olduğunu fark ettim. Tatlı! –

+0

Sadece bir not: bu, Python 3.x 'te a.dtype.type is np.str_' olması gerektiği gibi görünüyor. Xx –

+0

Python 2.x için _and_ 3.x 'a.dtype.kind' ye karşı test edebilirsiniz U ',' S '} 'dizeleri ve unicode yakalamak için. – Chipmuenk