numpy.max はヘビーループでは遅い(Python)

0

以下の「桁外れに速い」は大きな配列を対象とする場合でした。

numpy.max は桁外れに速い(Python)

今回、小さな配列でのヘビーループ(回数の多いループ)では、
逆に、numpy を使うと、明らかに遅くなってしまいました。

100万回程度の繰り返しにて、これだけ差が出てしまいました。
numpy はオーバーヘッドが大きいのかもしれません。

0.17012476921081543
0.8915903568267822
5.12544059753418
2.528871536254883

なお、max のみならず numpy.median 等でも、同様の傾向が見られました。

比較のための median は statistics ライブラリを使用しました。

0.49211883544921875
1.556931972503662
22.91332697868347
21.753185510635376

巨大な配列では、numpy のほうが明らかに高速ですが、
大きなループの中では、オーバーヘッド?が問題になるようで
使い分けが必要なようです。

for ループを避けて行列操作のみで片付けば numpy はそれが一番
速いと思いますが、そうでなかった場合に考慮が要りそうです。

Python のバージョンは 3.7.3 。

カテゴリー:


0