我从数据集中加载了2个值。
x1=5.904e-16
和
x1=1.048576e-14
授予这些是微小的数字,但我想做的就是平均它们。
avg = 1/2*(x1+x2)
但是这给出了avg = 0
编曲!
答案 0 :(得分:4)
我假设您使用的是Python 2。
当两个参数都是整数时,Python 2使用整数除法,这意味着结果也将是一个整数。例如:
print 1/2
# 0
print 5/2
# 2
要克服这一点,要么使用float等效(0.5
),要么将其中一个参数更改为除法(1
或2
,无关紧要)到a浮动,这样它也会返回一个浮点数。
print 1.0/2
# 0.5
print 1/2.0
# 0.5
print 1.0/2.0
# 0.5
你也可以像nneonneo mentioned一样,将这笔钱直接存入分区,如下:
(x1+x2)/2.0
这也会得到理想的结果。
答案 1 :(得分:-2)
avg = 0.5*(x1+x2)
工作因为显然在python中的1/2不等于0.5但是没有它看到1/2作为一个超过两个而没有超过小数的值,所以它假设你不关心想要那样。