T1.10
第1章习题10、19、20
教材页 第1章习题10、19、20
任务 进行描述性统计、绘制直方图、盒图、分位数图。
Python

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from scipy.stats import t
import math
A = np.array([2,9,1,0,3,5,8,7,5,1,8,1])
print("mean=", A.mean())
print("median=",np.median(A))
print("众数=",np.argmax(A))
print("min=", np.min(A))
print("max=", np.max(A))
print('第1四分位数=',np.percentile(A,(25)))
print('第3四分位数=',np.percentile(A,(75)))
#四分位极差

#以下为盒图
x=[A]
plt.boxplot(x)
plt.show()

#以下为直方图
x=[A]
plt.hist(x, bins = [0,2,4,8,10])
plt.show()

#以下为统计频数
s = pd.cut(A, bins=[x for x in range(0,10)])
print(s.value_counts())
values = s.value_counts().values
print(values)

#以下为频数条形图
labels = [str(i) + '-' + str(i+1) for i in range(int(np.max(A)))]
print(labels)
['0-1', '1-2', '2-3', '3-4', '4-5', '5-6', '6-7', '7-8','8-9']

df = pd.DataFrame(values, index=labels)
df.plot(kind='bar', legend=False)
plt.xticks(rotation=0)
plt.rcParams['font.family'] = 'SimHei'; #设置字体
plt.ylabel('频数')
plt.xlabel('区间')
plt.show()

#以下为十分位数
print('第1十分位数=',np.percentile(A,(10)))
print('第2十分位数=',np.percentile(A,(20)))
print('第3十分位数=',np.percentile(A,(30)))
print('第4十分位数=',np.percentile(A,(40)))
print('第5十分位数=',np.percentile(A,(50)))
print('第6十分位数=',np.percentile(A,(60)))
print('第7十分位数=',np.percentile(A,(70)))
print('第8十分位数=',np.percentile(A,(80)))
print('第9十分位数=',np.percentile(A,(90)))
print('第10十分位数=',np.percentile(A,(100)))

#以下为十分位数图
#X轴,Y轴数据
x = [1,1,1.30,2.40,4.0,5,6.40,7.8,8,9];
y = [1,2,3,4,5,6,7,8,9,10];
plt.figure(figsize=(8,4)); #创建绘图对象
plt.rcParams['font.family'] = 'SimHei'; #设置字体
plt.plot(x,y,"b--",linewidth=1); #在当前绘图对象绘图(X轴,Y轴,蓝色虚线,线宽度设置为1)
plt.xlabel("十分位数"); #X轴标签
plt.ylabel("值"); #Y轴标签
plt.title("十分位数图"); #图标题
plt.show(); #显示图

输出

Python输出:
mean= 4.166666666666667
median= 4.0
众数= 1
min= 0
max= 9
第1四分位数= 1.0
第3四分位数= 7.25
(0, 1] 3
(1, 2] 1
(2, 3] 1
(3, 4] 0
(4, 5] 2
(5, 6] 0
(6, 7] 1
(7, 8] 2
(8, 9] 1
dtype: int64
[3 1 1 0 2 0 1 2 1]
['0-1', '1-2', '2-3', '3-4', '4-5', '5-6', '6-7', '7-8', '8-9']
第1十分位数= 1.0
第2十分位数= 1.0
第3十分位数= 1.2999999999999998
第4十分位数= 2.4000000000000004
第5十分位数= 4.0
第6十分位数= 5.0
第7十分位数= 6.399999999999999
第8十分位数= 7.800000000000001
第9十分位数= 8.0
第10十分位数= 9.0

书籍 姜维.《数据分析与数据挖掘》、《数据分析与数据挖掘建模与工具》,电子工业出版社, 2023,2024。
软件 Python,C++(附加orsci包)。