2012-05-28 17 views
13

¿cómo puedo determinar si una matriz Numpy contiene una cadena? La matriz a enNumpy: comprobar matriz para el tipo de datos de cadena

a = np.array('hi world') 

tiene datos tipo dtype('|S8'), en donde 8 se refiere al número de caracteres en la cadena.

No veo cómo las expresiones regulares (como re.match('\|S\d+', a.dtype)) funcionarían aquí ya que el tipo de datos no es simplemente '|S8'.

Saludos, Nico

Respuesta

15
a.dtype.char == 'S' 

o

a.dtype.type is np.string_ 

Ver NumPy docs, Data type objects, Attributes.

+1

Noté que también hay a.dtype.kind == 'S'. ¡Dulce! –

+0

Solo una nota: parece que esto debe ser 'a.dtype.type es np.str_' en Python 3.x –

+0

Para Python 2.x _and_ 3.x usted puede probar contra' a.dtype.kind en {' U ',' S '} 'para capturar cadenas y unicode. – Chipmuenk

Cuestiones relacionadas