私はこれをしばらくの間考えていました。タイトルが言うように、どちらが速いのか、実際の機能ですか、それとも単に半分の電力に引き上げますか?
更新
これは時期尚早の最適化の問題ではありません。これは、基礎となるコードが実際にどのように機能するかという問題です。Pythonコードが機能する方法の理論は何ですか?
これらの方法の違いを本当に知りたかったので、Guido van Rossumにメールを送りました。
Pythonで平方根を行う方法は少なくとも3つあります:math.sqrt、「**」演算子、およびpow(x、.5)。これらのそれぞれの実装の違いに興味があります。効率に関してはどちらが良いですか?
powと**は同等です。math.sqrtは複素数では機能せず、Cのsqrt()関数にリンクします。どちらが速いかわかりません...
math.sqrt(x)
はよりもはるかに高速ですx**0.5
。
import math
N = 1000000
%%timeit
for i in range(N):
z=i**.5
10ループ、最高3:ループあたり156 ms
%%timeit
for i in range(N):
z=math.sqrt(i)
10ループ、最高3:ループあたり91.1ミリ秒
Python 3.6.9(ノートブック)を使用。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加