其他分享
首页 > 其他分享> > SDU项目实训记录1.3——基础知识(6.29-6.30)

SDU项目实训记录1.3——基础知识(6.29-6.30)

作者:互联网

SDU项目实训记录1.3——基础知识

一、数据处理入门

1、Numpy学习与使用

(1)创建数组:一维/二维数组、单位方阵、非方阵、对角矩阵等
(2)数组维度获取
(3)数组元素筛选
(4)数组元素查找与统计方法
(5)数组排序
(6)数组元素增删
(7)数组组合与拼接

2、基本统计量

(1)百分位数

实现百分位数计算

  • 一组 n n n个元素的数组升序排列后,处于 x % x\% x%位置的值称为第 x x x百分位数
  • 计算方法:
  • 数字升序排列
  • 计算下标索引: i = ( n − 1 ) ∗ x % i=(n-1)*x\% i=(n−1)∗x% 考虑到下标索引从0开始,因此用 n − 1 n-1 n−1来计算
  • 如果 i i i是整数,则直接返回 i i i对应的元素值
  • 如果 i i i不是整数,则将 i i i向上向下分别取整得到两个相邻的下标索引 f l o o r _ i floor\_i floor_i和 c e i l _ i ceil\_i ceil_i,然后根据 i i i与这两个索引之间的距离进行插值计算,返回相应结果

中位数和四分位数计算

  • 中位数实际上是 50 % 50\% 50%分位数,可以通过np.median来计算
  • 统计中经常用到的是 25 % 25\% 25%、 50 % 50\% 50%、 75 % 75\% 75%分位数,分别称为第1、第2和第3四分位数,记为: Q 1 , Q 2 , Q 3 Q1,Q2,Q3 Q1,Q2,Q3
  • Q 1 Q1 Q1和 Q 3 Q3 Q3之间距离的一半,称为四分位差,记为 Q Q Q。 Q Q Q越小,说明中间部分的数据越集中;反之则越分散
  • np.percentile可直接用于计算百分位数。

(2)偏差相关的计算

数组偏差的概念及计算

  • 偏差(deviation):数组中每个元素与数组平均值的差,其结果仍然是数组
  • 计算公式: d e v ( x ) = x ( i ) − x ˉ , i = 1 , 2 , ⋯   , n dev(x)=x^{(i)}-\bar{x}, i=1,2,\cdots,n dev(x)=x(i)−xˉ,i=1,2,⋯,n
  • x ( i ) x^{(i)} x(i)表示第 i i i个元素
  • x ˉ \bar{x} xˉ表示数组的算数平均值

方差的概念及计算

  • 方差(variance):每个元素的偏差平方和,再除以有效元素个数
  • 计算式: v a r ( x ) = ∑ i = 1 n ( x ( i ) − x ˉ ) 2 n var(x) = \dfrac{\sum_{i=1}^{n} (x^{(i)} - \bar{x} )^2}{n} var(x)=n∑i=1n​(x(i)−xˉ)2​ 其中, n n n为有效元素个数
  • 无偏估计方差(unbiased estimator):有效元素个数为【数组长度-1】
  • 有偏估计方差(biased estimator):有效元素个数为【数组长度】
  • 用于计算方差的函数:np.var(arr)
  • ddof=1,计算无偏方差
  • ddof=0,计算有偏方差(默认)
  • 方差的意义
  • 方差指示了一个数组中各个元素的离散程度
  • 方差越大,离散程度越大;方差越小,说明各个数据都比较集中在均值附近

标准差的概念及计算

  • 标准差(standard variance):又叫均方差,也就是方差的平方根
  • 分为有偏估计和无偏估计标准差
  • 计算式: s t d ( x ) = v a r ( x ) std(x)=\sqrt{var(x)} std(x)=var(x)
  • 用于计算标准差的函数:np.std(arr)

协方差的概念及计算

  • 协方差(covariance):对于长度相同的两个数组,先求出各自的偏差,然后求出两组偏差的内积和,最后除以有效元素总数
  • 计算式: c o v ( x , y ) = ∑ i n ( x ˉ − x ( i ) ) ( y ˉ − y ( i ) ) n cov(x, y)=\dfrac{\sum_i^n(\bar{x} - x^{(i)})(\bar{y} - y^{(i)})}{n} cov(x,y)=n∑in​(xˉ−x(i))(yˉ​−y(i))​
  • y ˉ \bar{y} yˉ​:数组 y y y的平均值
  • x ˉ \bar{x} xˉ:数组 x x x的平均值
  • x ( i ) x^{(i)} x(i):数组 x x x中第 i i i个元素
  • y ( i ) y^{(i)} y(i):数组 y y y中第 i i i个元素
  • 协方差的意义
  • 两个数组(或向量)的协方差越大,说明二者之间的相互线性影响越明显
  • 用于计算协方差的函数:np.cov(A)
  • A A A代表一个 ( M , N ) (M,N) (M,N)的矩阵或二维数组
  • 返回协方差矩阵 C C C,其中 C [ i , j ] C[i,j] C[i,j]表示一维数组 A [ i ] A[i] A[i]与 A [ j ] A[j] A[j]的协方差

使用矩阵运算来计算协方差矩阵

  • 假设有 ( M , N ) (M,N) (M,N)维度的矩阵 A A A,每一行代表一个数组,现在需要计算各行数组之间的协方差
  • 可以采用下列步骤:
  • A A A的每一行元素减去该行平均值
  • 计算 A A T AA^{T} AAT,这相当于分别计算了每一行与包括自己在内的其它行的内积和
  • 将上述计算结果矩阵中的每个元素除以数组有效元素个数(也就是每行的元素个数)

相关性计算

  • 相关性(correlation):对于两个数组(元素个数相同),计算出协方差以及两个标准差,然后用协方差除以标准差乘积
  • 计算式: c o r ( x , y ) = c o v ( x , y ) s t d ( x ) ∗ s t d ( y ) cor(x, y)=\dfrac{cov(x,y)}{std(x) * std(y)} cor(x,y)=std(x)∗std(y)cov(x,y)​
  • 相关性的意义
  • 相关性用于衡量两个数组的关联度
  • 1表示最强的正关联;-1表示最强的负关联;0表示完全没有关联
  • 用于计算相关性的函数:np.corrcoef(A)
  • A A A代表一个 ( M , N ) (M,N) (M,N)的矩阵或二维数组
  • 返回相关性矩阵 C C C,其中 C [ i , j ] C[i,j] C[i,j]表示 A [ i ] A[i] A[i]与 B [ j ] B[j] B[j]行的相关性

协方差、相关性、独立性之间的关系
对于两个数组 a a a和 b b b:

3、生成随机变量

(1)均匀分布产生随机数:rand, random, randint

查看numpy中均匀分布产生的随机数分布情况

  • np.random.rand*、np.random.random均可用于生成0-1之间的随机浮点数
  • np.randint*可生成指定区间内的随机整数
  • 在0-100中生成大量的随机整数,分别统计每个整数值的个数,可以发现,0-100之间的个数大体相当

在这里插入图片描述
(2)标准正态分布随机数:randn

观察randn生成的随机数,其分布满足标准正态分布

在这里插入图片描述

4、Pandas文件读取

(1)pd.read_csv(‘file.csv’)读取csv文件
(2)使用DataFrame.values属性来获取纯数据
(3)通过的列的字符串名称来访问该列的所有数据,如果列名符合变量名规范,也可以直接作为属性名访问
(4)使用loc或这iloc来访问行数据

二、获取数据分布特点及可视化展现

(1)样本数量统计->柱状图
在这里插入图片描述
(2)统计各类样本比例->饼图
在这里插入图片描述
(3)统计不同区间的样本数->直方图
在这里插入图片描述
也可以直接使用DataFrame.hist()函数来为每个数值类型的字段生成直方图统计
在这里插入图片描述
(4)查看样本的统计分布->箱形图
在这里插入图片描述

(5)使用误差棒图查看数组统计信息(不常见)

标签:方差,SDU,元素,数组,6.30,1.3,协方差,计算,np
来源: https://blog.csdn.net/weixin_43959421/article/details/118335676