第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