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:
- 如果 c o v ( a , b ) = 0 cov(a, b)=0 cov(a,b)=0,则必有 c o r ( a , b ) = 0 cor(a, b)=0 cor(a,b)=0,即 a a a和 b b b没有线性关系
- 反过来,如果 a a a和 b b b完全没有线性关系,则它们的协方差和相关性也为0
- 协方差或相关性为0,并不意味着 a a a和 b b b完全独立,因为它们可能有非线性关联,例如: a a a基于函数 s i n ( x ) sin(x) sin(x), b b b基于函数 c o s ( x ) cos(x) cos(x)
- 如果 a a a和 b b b是独立的,那么意味着它们既无线性关系,也无非线性关系;所以协方差和相关性都为0
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