Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

【python3, numpy】文字列ndarrayからあるキーワードを含んだ要素を検索する(numpy.char.find)

ndarrayに文字列のリストが詰まっている
その文字列の中にあるキーフレーズが含まれているかどうかを検索して、そのindexを取得して、
その文字列を取り出し、必要な部分のみ切り出したい

最初は1度リストに変換してから、inを使って判定してたけど
ndarrayの検索機能を使ったほうが早いのでは?と思い直した

ndarrayの検索機能といえば、np.whereだな・・・と思ったけど、inは使えないっぽい
==とか大小関係なら使えるが、今回は文字列のndarrayだからだめなのかな?(なんかこういうことは前にもあったような・・・)




■ 参考 : numpy.char.find

numpy.char.findを使えば良さそう

aが文字列のndarray
a_keyが検索するキーワードとして、

b = a[np.char.find(a, a_key) != -1]

これで、bにa_keyが入っているリストができる
あとは思いのままに処理してください。
a_keyが入っている最初の要素がほしいならb[0]で良い

!= -1としているのは、a_keyが入っていない要素には、-1が返ってくるから(a_keyが入ってると0だったと思う)



ランキング参加中です

↓クリックしていただけると嬉しいです〜