↓もし、良かったらSNSでの紹介よろしくお願いします。

Python平方根の計算をする。(math.sqrtとnumpy.sqrtを比較)

bootstrap

Pythonでルート計算

square-root-27895_640

平方根を求める

>>>import math
>>>math.sqrt(7)
2.6457513110645907

平方根を求める(numpyを使う)

>>>import numpy as np
>>>np.sqrt(7)
2.6457513110645907

どっちが早い?

結論から言うと

  • 基本的にはmath.sqrtが早い
  • 複数の平方根をまとめて計算する場合はnumpyが早い

実際の計測

基本的にはmath.sqrtが早い

In [1]: import numpy as np
In [2]: %timeit -n 1000 -r 1 math.sqrt(7)
100 loops, best of 1: 359 ns per loop
In [3]: %timeit -n 1000 -r 1 np.sqrt(7)
100 loops, best of 1: 2.46 μs per loop
In [4]: bignum = 7777777777
In [5]: %timeit -n 1000 -r 1 math.sqrt(bignum)
100 loops, best of 1: 784 ns per loop
In [6]: %timeit -n 1000 -r 1 np.sqrt(bignum)
100 loops, best of 1: 2.64 μs per loop

複数の平方根をまとめて計算する場合はnumpyが早い

In [7]: %timeit -n 1000 -r 1 map(math.sqrt, range(10000, 30000))
In [8]: %timeit -n 1000 -r 1 np.sqrt(range(10000, 30000))