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

这只是两种不同类型的不同字符串表示的情况:

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

现在可能是阅读numpyscalarsnumpydtypes的时候了。

于 2013-09-04T20:12:28.367 回答