2

1 つの質問に答えるscipy.stats.nanmean が numpy.nansum と異なる結果をもたらすのはなぜですか? numpy.int32、私は、a を使用した Python POD と比較して、 aを掛けるfloatと異なる浮動小数点数の結果になることに気付きintましたfloat

使用時に浮動小数点近似を引き起こす理由はありますかnumpy.int32

>>> numpy.int32(1) * 0.2
0.20000000000000001
>>> 1 * 0.2
0.2
4

1 に答える 1

5

2 つの式は、値は同じですが型が異なる結果を返します。

In [17]: numpy.int32(1) * 0.2 == 1 * 0.2
Out[17]: True

In [18]: type(numpy.int32(1) * 0.2)
Out[18]: numpy.float64

In [19]: type(1 * 0.2)
Out[19]: float

numpy.float64異なる出力は、純粋にとの間のデフォルトのフォーマットの違いによるものですfloat

タイプを逆にすると、出力も逆になります。

In [12]: float(numpy.int32(1) * 0.2)
Out[12]: 0.2

In [13]: numpy.float64(1 * 0.2)
Out[13]: 0.20000000000000001

純粋に表示の問題です。ここでは数値的な違いはありません。

于 2013-01-23T09:11:00.277 に答える