一组数num = [0.56, 0.44, 0.37, 0.41]的平均数用两组方法算出来竟然是两种结果。我分别用了np.mean(cm) 和 sum(cm) / len(cm)计算出来平均数都是0.445,但是当我想保留两位小数的时候出问题了,一个显示0.44,一个显示0.45。
按照我们四舍五入的思想,0.445保留两位应该是0.45。
import numpy as np
num = [0.56, 0.44, 0.37, 0.41]
ave1 = np.mean(num)
ave2 = sum(num) / len(num)
print(ave1) # 0.445
print(ave2) # 0.445
print('保留两位小数:', round(ave1, 2)) # 0.44
print('保留两位小数:', round(ave2, 2)) # 0.45
print('保留两位小数:', round(0.445, 2)) # 0.45
round(0.445, 2)的结果是0.45,那就是说不是round函数的问题。根据我的推测,应该是np.mean()内部实现时的问题,但具体内部是哪里出问题的,还没弄清楚。。。