转自:https://blog.csdn.net/Muzi_Water/article/details/85104941
mean和average都是计算均值的函数,在不指定权重的时候average和mean是一样的。指定权重后,average可以计算一维的加权平均值。具体如下:
import numpy as np a = np.array([np.random.randint(0, 20, 5), np.random.randint(0, 20, 5)]) print('原始数据 ', a) print('mean函数'.center(20, '*')) print('对所有数据计算 ', a.mean()) print('axis=0,按行方向计算,即每列 ', a.mean(axis=0)) # 按行方向计算,即每列 print('axis=1,按列方向计算,即每行 ', a.mean(axis=1)) # 按列方向计算,即每行 print('average函数'.center(20, '*')) print('对所有数据计算 ', np.average(a)) print('axis=0,按行方向计算,即每列 ', np.average(a, axis=0)) # 按行方向计算,即每列 print('axis=1,按列方向计算,即每行 ', np.average(a, axis=1)) # 按列方向计算,即每行 b = np.array([1, 2, 3, 4]) wts = np.array([4, 3, 2, 1]) print('不指定权重 ', np.average(b)) print('指定权重 ', np.average(b, weights=wts))
运行结果:
原始数据 [[10 12 7 14 5] [12 10 2 16 7]] *******mean函数******* 对所有数据计算 9.5 axis=0,按行方向计算,即每列 [ 11. 11. 4.5 15. 6. ] axis=1,按列方向计算,即每行 [ 9.6 9.4] *****average函数****** 对所有数据计算 9.5 axis=0,按行方向计算,即每列 [ 11. 11. 4.5 15. 6. ] axis=1,按列方向计算,即每行 [ 9.6 9.4] 不指定权重 2.5 指定权重 2.0