描述性统计是一种描述数据集特征的方法,通过若干类数据统计值来进行统计。本题具体使用的统计值如下
-
平均值(mean)
-
中位数(median) 将数据从小到大排序后:
-
众数(mode) 出现次数最多的数值:
其中
为
出现的频率
-
方差(variance)
-
标准差(standard_deviation)
-
25th百分位数(25th_percentile)
25%百分位数是数据从小到大排序后,第25%个数据,剩下的百分位数同理。
-
50th百分位数(50th_percentile)
-
75th百分位数(75th_percentile)
-
四分位距(interquartile_range)
四分位距是数据集中位于25%到75%之间的数据范围。
标准代码如下
def descriptive_statistics(data):
data = np.array(data)
mean = np.mean(data)
median = np.median(data)
unique, counts = np.unique(data, return_counts=True)
mode = unique[np.argmax(counts)] if len(data) > 0 else None
variance = np.var(data)
std_dev = np.sqrt(variance)
percentiles = np.percentile(data, [25, 50, 75])
iqr = percentiles[2] - percentiles[0]
stats_dict = {
"mean": mean,
"median": median,
"mode": mode,
"variance": np.round(variance,4),
"standard_deviation": np.round(std_dev,4),
"25th_percentile": percentiles[0],
"50th_percentile": percentiles[1],
"75th_percentile": percentiles[2],
"interquartile_range": iqr
}
return stats_dict