Сравнение строк в 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)

Сравнение перестало работать из-за пробела. Есть ли встроенная функция Numpy, которая делает эквивалент

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

который действительно дает корректный результат?

5
задан astrofrog 23 March 2010 в 15:50
поделиться

1 ответ

Numpy предоставляет векторные строковые операции для массивов, аналогичные строковым методам Python. Они находятся в модуле 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]

Надеюсь, это будет полезно.

11
ответ дан 13 December 2019 в 19:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: