1 から 10000000 までの整数の平均値
Python3
>>> import time; import statistics; start=time.time();statistics.mean(list(range(1,10000001)));print(time.time()-start)
5000000.5
9.593008995056152 # 9 秒もかかる?
>>> import time; import numpy; start=time.time();numpy.mean(list(range(1,10000001)));print(time.time()-start)
5000000.5
1.1983740329742432 # numpy でも 1 秒
R
> optons(digits=16)
> system.time(print(mean(1:10000000)))
[1] 5000000.5
ユーザ システム 経過
0.016000000000005343 0.008000000000002672 0.023999999999887223 # 0.02 秒以下なんだが
numpy.mean(numpy.arange(1,10000000))
みたいにして比較するなら良いかと思います。
上記のpythonの例だと, Rで言うなれば x<-as.list(1:10000000) としてから, mean(unlist(x))としているのとにたような比較になってしまっています。
# つまりリスト処理のオーバーヘッドの計測をしてしまっている.