5

これは非常に奇妙だと思います。誰かがここで何が起こっているのか教えてもらえますか?

>>>a = [1,0,1]
>>>np.mean(a)
   0.66666666666666663
>>>2.0/3
   0.6666666666666666

の出力の最後の 3 はどうなっていnp.mean(a)ますか? その下の線のような 6 または 7 (四捨五入の場合) ではないのはなぜですか?

4

1 に答える 1

5

これは、2 つの異なる型の異なる文字列表現の場合にすぎません。

In [17]: a = [1, 0, 1]

In [18]: mean(a)
Out[18]: 0.66666666666666663

In [19]: type(mean(a))
Out[19]: numpy.float64

In [20]: 2.0 / 3
Out[20]: 0.6666666666666666

In [21]: type(2.0 / 3)
Out[21]: float

In [22]: mean(a).item()
Out[22]: 0.6666666666666666

それらは等しく比較されます。

In [24]: mean(a) == 2.0 / 3
Out[24]: True

In [25]: mean(a).item() == 2.0 / 3
Out[25]: True

numpy今こそスカラーnumpydtypesについて読むときかもしれません。

于 2013-09-04T20:12:28.367 に答える