1
numpy.mean()
とnumpy.var()
の出力は、引数の順序が変わると変化することがわかりました。numpyの順序は依存していますか?
浮動小数点数の精度だけで済むか、何か不足していますか?ここ
import numpy
l1 = [1.0, 0.69, 0.65, 0.7, 0.64, 0.8]
l2 = [1.0, 0.7, 0.69, 0.65, 0.64, 0.8]
assert sorted(l1) == sorted(l2)
print repr(numpy.mean(l1))
print repr(numpy.mean(l2))
print repr(numpy.var(l1))
print repr(numpy.var(l2))
Iが得出力:(この場合)
0.7466666666666667
0.74666666666666659
0.015522222222222222
0.015522222222222224
浮動小数点加算は可換ではなく、連想ではないので、ほかの順序が重要です。より極端な例として、 'l1 = [1e17,3.0、-1e17]'と 'l2 = [1e17、-1e17,3.0]を試してください。 (ちなみに、これらの2つの結果は、MikeMüllerが言及した 'allclose'テストでは失敗します。) –