2010-03-23 8 views
4

Dans l'exemple suivantcomparaison pour les chaînes dans Numpy

In [8]: import numpy as np 

In [9]: strings = np.array(['hello ', 'world '], dtype='|S10') 

In [10]: strings == 'hello' 
Out[10]: array([False, False], dtype=bool) 

La comparaison échoue en raison de l'espace. Y at-il une fonction intégrée Numpy qui fait l'équivalent de

In [12]: np.array([x.strip()=='hello' for x in strings]) 
Out[12]: array([ True, False], dtype=bool) 

ce qui donne le bon résultat?

Répondre

10

Numpy fournit des opérations de chaînes vectorisées pour des tableaux similaires aux méthodes de chaîne de Python. Ils sont dans le module numpy.char.

http://docs.scipy.org/doc/numpy/reference/routines.char.html

import numpy as np 

strings = np.array(['hello ', 'world '], dtype='|S10') 

print np.char.strip(strings) == 'hello' 
# prints [ True False] 

Espérons que cela est utile.