あなたはnp.std
かnp.var
に知られている平均値を渡すことはできません、あなたはnew standard library statistics
moduleを待つ必要があるでしょうが、その間に、あなたが式を使って、少し時間を節約することができます。
In [329]: a = np.random.rand(1000)
In [330]: %%timeit
.....: a.mean()
.....: a.var()
.....:
10000 loops, best of 3: 80.6 µs per loop
In [331]: %%timeit
.....: m = a.mean()
.....: np.mean((a-m)**2)
.....:
10000 loops, best of 3: 60.9 µs per loop
In [332]: m = a.mean()
In [333]: a.var()
Out[333]: 0.078365856465916137
In [334]: np.mean((a-m)**2)
Out[334]: 0.078365856465916137
の場合あなたは本当に(つまり、ドット積が何であるかだから)乗との加算を行うためにnp.dot
をしようと、物事をスピードアップしようとしている。
In [335]: np.dot(a-m,a-m)/a.size
Out[335]: 0.078365856465916137
In [336]: %%timeit
.....: m = a.mean()
.....: c = a-m
.....: np.dot(c,c)/a.size
.....:
10000 loops, best of 3: 38.2 µs per loop
なぜnumpy.stdを使用しないのですか?あるいは、標準偏差以外の何かを計算したいですか? – Greg