Python,numpy,分段答案四舍五入

Python, numpy, piecewise answer gets rounded

我对 numpy.piecewise 的输出有疑问。

我的代码:

e=110
f=np.piecewise(e,[e<120,e>=120],[1/4,1])
print(f)

结果我得到: 0 而不是所需的 0.25

有人可以解释一下为什么 piecewise 似乎在四舍五入我的答案吗? 有没有办法不做就解决这个问题?

e=110
f=np.piecewise(e,[e<120,e>=120],[1,4])/4
print(f)

非常感谢

来自np.piecewise docs

The output is the same shape and type as x

整数输入,整数输出。如果要浮点数输出,需要传入一个float:

e = 110.0

此外,如果您在 Python 2,1/4 已经是 0,因为那是 Python 2 的楼层划分,所以您需要写一些像 1.0/4.00.25.

这样的东西

在您的代码中,1/4 生成 0 的 int 值。使用 float(1)/4 将生成其浮点值。

e=110
f=np.piecewise(e,[e<120,e>=120],[float(1)/4,1])
print(f)