一、Numpy简介
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。
NumPy 是一个运行速度非常快的数学库,主要用于数组计算,包含:- 一个强大的N维数组对象 ndarray
- 广播功能函数
- 整合 C/C++/Fortran 代码的工具
- 线性代数、傅里叶变换、随机数生成等功能
NumPy 通常与 SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用, 这种组合广泛用于替代 MatLab,是一个强大的科学计算环境,有助于我们通过 Python 学习数据科学或者机器学习。
SciPy 是一个开源的 Python 算法库和数学工具包。SciPy 包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。Matplotlib 是 Python 编程语言及其数值数学扩展包 NumPy 的可视化操作界面。它为利用通用的图形用户界面工具包,如 Tkinter, wxPython, Qt 或 GTK+ 向应用程序嵌入式绘图提供了应用程序接口(API)。二、描述性统计量
三、描述性统计量实现
1 import numpy as np 2 from scipy import stats 3 from numpy import mean, ptp, var, std 4 data=np.array([17, 19, 26, 29, 35, 19, 21]) 5 6 w = [0.1, 0.1, 0.2, 0.1, 0.3, 0.1, 0.1] 7 8 print("排序:",np.sort(data)) 9 print("求和:",np.sum(data))10 11 print("\n集中趋势")12 13 print("众数:",stats.mode(data)[0][0])14 print("中位数:",np.median(data))15 print("平均数:",np.mean(data))16 print("25%分位数:",np.percentile(data, 25))17 print("50%分位数:",np.percentile(data, 50))18 print("75%分位数:",np.percentile(data, 75))19 print("四分位差:",np.percentile(data, 75)-np.percentile(data, 25))20 21 print("极差:",ptp(data))22 print("加权平均数:",np.average(data,weights=w))23 print("几何平均数:",stats.gmean(data))24 25 print("\n离中趋势")26 27 print("方差:",var(data))28 print("标准差:",std(data))29 print("平均差:",np.sum(abs(data-np.mean(data)))/len(data))30 print("异众比率:",1-stats.mode(data)[1][0]/len(data))31 print("离散系数:",std(data)/np.mean(data))32 print("偏态系数:",stats.skew(data))33 print("峰态系数:",stats.kurtosis(data))
运行结果:
排序: [17 19 19 21 26 29 35]求和: 166集中趋势众数: 19中位数: 21.0平均数: 23.71428571428571525%分位数: 19.050%分位数: 21.075%分位数: 27.5四分位差: 8.5极差: 18加权平均数: 26.200000000000003几何平均数: 22.996368449077114离中趋势方差: 36.775510204081634标准差: 6.0642815076546075平均差: 5.387755102040816异众比率: 0.7142857142857143离散系数: 0.25572271417820636偏态系数: 0.6820851611428496峰态系数: -0.8763434634842784