我觉得这很奇怪。有人可以告诉我这里发生了什么吗?
>>>a = [1,0,1]
>>>np.mean(a)
0.66666666666666663
>>>2.0/3
0.6666666666666666
的输出末尾的 3 是np.mean(a)
怎么回事?为什么它不是像下面的线那样的 6 或 7(四舍五入时)?
这只是两种不同类型的不同字符串表示的情况:
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
scalars和numpy
dtypes的时候了。