这更像是一个普遍的理解问题
a = np.array([-0, 5, 0]).astype(float)
b = 1 / a
print b
返回[ inf 0.2 inf]
但是
a = np.array([-0.0, 5, 0])
b = 1 / a
print b
返回[-inf 0.2 inf]
我希望第一个元素也能为第一个元素返回-inf
,为什么不呢?
答案 0 :(得分:4)
大多数机器上的整数没有负零概念,因此-0
只是0
。由于您在强制转换之前从整数构建数组,因此得到[0.0, 5, 0.0]
。
In [2]: np.array([-0, 5, 0]).astype(float)
Out[2]: array([ 0., 5., 0.])