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)
非常感谢
The output is the same shape and type as x
整数输入,整数输出。如果要浮点数输出,需要传入一个float:
e = 110.0
此外,如果您在 Python 2,1/4
已经是 0
,因为那是 Python 2 的楼层划分,所以您需要写一些像 1.0/4.0
或 0.25
.
这样的东西
在您的代码中,1/4 生成 0 的 int 值。使用 float(1)/4
将生成其浮点值。
e=110
f=np.piecewise(e,[e<120,e>=120],[float(1)/4,1])
print(f)
我对 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)
非常感谢
The output is the same shape and type as x
整数输入,整数输出。如果要浮点数输出,需要传入一个float:
e = 110.0
此外,如果您在 Python 2,1/4
已经是 0
,因为那是 Python 2 的楼层划分,所以您需要写一些像 1.0/4.0
或 0.25
.
在您的代码中,1/4 生成 0 的 int 值。使用 float(1)/4
将生成其浮点值。
e=110
f=np.piecewise(e,[e<120,e>=120],[float(1)/4,1])
print(f)