np.mean(axis=0):对第 n 列的每行元素求平均。
np.mean(axis=1):对第 m 行的每列元素求平均。
import numpy as np a = np.array([[1, 2, 3, 4], [2, 3, 4, 5], [4, 5, 6, 7]]) print(a) meanA_row = a.mean(axis=0) # 计算完之后array的长度等于列数 meanA_col = a.mean(axis=1) # 计算完之后array的长度等于行数 print(type(meanA_row)) print(meanA_row) print(meanA_col)
(参考:python NumPy ndarray二维数组 按照行列求平均)
补充: 1. 求均值、方差、标准差、最大值、最小值都类似~
import numpy as np a = np.array([[1, 1], [2, 2]]) print(a.mean(axis=0)) # 求均值 print(a.var(axis=0)) # 求方差 print(a.std(axis=0)) # 求标准差 print(a.max(axis=0)) # 求最大值 print(a.min(axis=0)) # 求最小值
(参考:Python求均值,方差,标准差)
2. Python 的标准差和 Matlab 的标准差比较# Python numpy 求标准差 import numpy as np a = np.arange(1, 11) print(a) print(a.std()) print(a.std(ddof=1))
# Python pandas 求标准差 import numpy as np import pandas as pd a = np.arange(1, 11) aa = pd.Dataframe(a) print(aa) print(aa.std()) print(aa.std(ddof=0)) print(aa.std(ddof=1))
% Matlab 求标准差 a = 1 : 10; std(a)
总结:
(1)Matlab 中的 std() 是样本标准差(无偏)。
(2)Python numpy 中的 np.std() 默认是总体标准差(有偏),设置参数 ddof=1 可以计算无偏标准差。
(3) Python pandas 中的 pd.std() 默认是样本标准差(无偏),设置参数 ddof=0 可以计算有偏标准差。
(4)ddof=1 表示计算无偏标准差。
(参考:【Python】统计数据标准差(总体标准差,样本标准差))
(参考:Python:使用pandas和numpy计算标准差的区别)
(参考:numpy中标准差std的神坑)



