Numpyでの文字列比較

numpy python
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)

どちらが正しい結果をもたらしますか?

  4  1


ベストアンサー

Numpyは、Pythonの文字列メソッドに似た配列のベクトル化された文字列操作を提供します。 それらはnumpy.charモジュールにあります。

import numpy as np

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

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

これが役に立つことを願っています。

10


タイトルとURLをコピーしました