pandasのapplyの高速化方法として、pandarallelやswifterが良さそうというのをこちらの記事を読んで知りました。
非常に高速に処理を実行することができて良さそうだったので、使ってみたメモです。
pandarallel
Pandaral.lel provides a simple way to parallelize your pandas operations on all your CPUs by changing only one line of code. It also displays progress bars.
数行変えるだけで、pandasでの処理が高速化する便利ライブラリです。
まずはpandasでコードを書いてみる
まずは何も考えずpandasでコードを書いてみます。
もとのコードとして、テキストの形態素解析と類似度判定についてやってみたいと思います。
- テキストファイルをpandasに読み込む
- 形態素解析
- 適当にcos類似度を計算
って処理です。
特に文書ベクトルの取得に時間がかかっているように見えますね。
(Wall time: 48.2 s
)
pandarallelを使う
今度はpandarallelを使って高速化して同じ処理を実行してみたいと思います。
Wall time: 17.1 s
と出ているので、だいたい3倍位高速化したことになりますね。
多分データ量が増えるともっと差が顕著に見えると思うので、大きなサイズのデータを使用するときには使用していきたいですね。
参考文献
この記事を書くにあたり下記の文献を参考にさせていただきました。
感想
1時間でシュッと書いたブログなんで, こんなもんです。