Numpy数据分析函数

酥酥 发布于 2021-09-18 950 次阅读


Numpy库简介

1.Numpy库的引入与变形

				
					# -*- coding: utf-8 -*-
import numpy as np
np.array()#直接创建数组,
np.arange()#类似range生成数组
np.linspace()#生成数组,固定步长
#np.genfromtxt(fname,dtype=<class 'float'>,comments='#',delimiter=None,skip_header=0,skip_footer=0,converters=None,missing_value=None,
# filling_values=None,usecols=None,names=None)
#fname指定需要读入的数据的文件路径
#dtype指定读入数据类型,默认为float,如果原数据中含有字符类型则必须使用str
#comments:指定注释符,如果开头含有#(默认为#),则忽略这些行的输入
#delimiter:指定分割符
#skip_header:是否跳过首行,默认不跳过
#skip_footer:是否跳过尾行,默认不跳过
#converters:将指定列的数据转换成其他数值
#missing_values:指定缺失值标记,如果原数据集合中含有指定的标记,读入后则表示为缺失值
#fill_values:指定缺失值的填充值
#usccol:指定需要读入哪些类
#names:为读入数据的列设置列名称
k=np.genfromtxt('1.txt',delimiter=None,encoding='utf-8',dtype='str')
print(k)
#以下样例中a,b为两个数组
#改变形状reshape .reshape(m,n,p)返回改变后的预览,并未真正改变
#改变形状resize .resize(m,n,p)不返回改变后的预览,真正改变
#改成一维,a.flatten()(在原数组上改变) a.ravel()(返回视图即预览) 把数组改为一维的
#数组堆叠np.vstack(a,b)np.row_stack(a,b) 纵向堆叠
#数组堆叠np.Hstack(a,b)np.column_stack(a,b) 纵向堆叠
np.squeeze()#改变维数,删除单维度,一般就是最后列为1的维
#1)a表示输入的数组;
#2)axis用于指定需要删除的维度,但是指定的维度必须为单维度,否则将会报错;
#3)axis的取值可为None或int或tupleofints, 可选。若axis为空,则删除所有单维度的条目;
#4)返回值:数组
#5) 不会修改原数组最后的列
				
			

2.Numpy库的运算

				
					mport numpy as np
#在numpy中四则运算可以直接用符号也可以用函数
#a,b为两个数组
#np.add(a,b)等同于a+b np.divide()等同于a/b np.subtract(a,b)等同于a-b np.multiply(a,b)等同于a*b
# %等同于np.fmod   //等同于np.modf   **等同于np.power 如果是整数的话modf需要写成np.modf(arr7/arr8)[1] 因为modf返回整数和小数部分

#比较运算
#>= np.greater_equal(arr1,arr2)
#> np.greater(arr1,arr2)
#< np.less(arr1,arr2)
#<= np.less_equal(arr1,arr2)
#== np.equal(arr1,arr2)
#!= np.not_equal(arr1,arr2)
#np.greater(arr1,arr2)=arr1[arr1>arr2]
#np.where(a,b,c) a为布尔值包含数组的,a=True取b,否则取c

#广播运算
#原则一:各输入数组的维度可以不相等,但必须保证从右到左的维度值相等 即可以堆叠
#原则二:如果对应维度值不相等,就必须保证其中一个为1 此时做运算就是对每一行/列的操作
#原则三:各输入数组向shape最长的数组看起,shape中不足的部分同都过在前面加1补齐

#常用函数汇总
np.pi
np.e
np.fabs()
np.ceil#向上取整
np.floor#向下取整
np.round()
np.fmod()
np.modf()
np.sqrt()
np.square()#求平方根
np.exp()
np.power()
np.log2()
np.log10()
np.log()
np.min(arr,axis=)
np.max(arr,axis=)
np.mean(arr,axis=)#按照轴方向计算均值
np.median(arr,axis=)#按照轴方向计算中位数
np.sum(arr,axis=)#按照轴方向计算和
np.std(arr,axis=)#按照轴方向计算标准差
np.var(arr,axis=)#按照轴方向计算方差
np.cumsum(arr,axis=)#按照轴方向计算累计和
np.cumprod(arr,axis=)#按照轴方向计算累计乘
np.argmin()#按照轴方向返回最小值所在的位置
np.argmin()#按照轴方向返回最大值所在的位置
np.corrcoef(arr)#计算皮尔逊相关系数
np.cov(arr) #计算协方差矩阵
3.线代相关运算
import numpy as np
np.zeros() #生成零矩阵
np.ones() #生成所有元素为1的矩阵
np.eye()#生成单位矩阵
np.transpose()#矩阵转置
np.dot()#计算两个数组的点积
np.inner()#计算两个数组的内积
np.diag()#矩阵主对角线与一维数组间的转化
np.trace()#计算矩阵主对角线元素的和
np.linalg.det()#计算矩阵行列式
np.linalg.eig()#计算矩阵特征根和特征向量
np.linalg.pinv()#计算方阵Moore-Penrose伪逆
np.linalg.inv()#计算方阵的逆
np.linalg.lstsq#计算Ax=b的最小二乘解
np.linalg.solve#计算Ax=b的线性方程的解
np.linalg.svd#计算奇异值分解
np.linalg.norm#计算向量或矩阵的范数

#伪随机数的生成
np.random.chisquare()#生成卡方分布随机数
np.random.choice()#从a中有放回地随机挑选指定数量的样本
np.random.exponential()#生成指数分布随机数
np.random.f()#生成F分布随机数
np.random.gamma()#生成伽马分布随机数
np.random.geometric()#生成几何分布随机数
np.random.hypergeometric()#生成超几何分布随机数
np.random.laplace()#生成拉珀拉丝分布的随机数
np.random.logistic()#生成Logistic分布随机数
np.random.negative_binomial()#生成负二项分布随机数
np.random.lognormal()#生成对数正态分布随机数
np.random.multinomial()#生成多元正态分布随机数
np.random.normal()#生成正态分布随机数
np.random.pareto()#生成帕累托分布随机数
np.random.poisson()#生成泊松分布随机数
np.random.rand()#生成n维均匀分布随机数
np.random.randn()#生成n维正态分布随机数
np.random.randint()#生成指定范围的随机整数
np.random.random_sample()#生成[0,1)随机整数
np.random.standard_t()#生成标准的t分布随机数
np.random.uniform()#生成指定范围的均匀分布随机数
np.random.wald()#生成Wald分布随机数
np.random.weibull()#生成Weibull分布随机数
				
			

3.线代相关运算

				
					import numpy as np
np.zeros() #生成零矩阵
np.ones() #生成所有元素为1的矩阵
np.eye()#生成单位矩阵
np.transpose()#矩阵转置
np.dot()#计算两个数组的点积
np.inner()#计算两个数组的内积
np.diag()#矩阵主对角线与一维数组间的转化
np.trace()#计算矩阵主对角线元素的和
np.linalg.det()#计算矩阵行列式
np.linalg.eig()#计算矩阵特征根和特征向量
np.linalg.pinv()#计算方阵Moore-Penrose伪逆
np.linalg.inv()#计算方阵的逆
np.linalg.lstsq#计算Ax=b的最小二乘解
np.linalg.solve#计算Ax=b的线性方程的解
np.linalg.svd#计算奇异值分解
np.linalg.norm#计算向量或矩阵的范数

#伪随机数的生成
np.random.chisquare()#生成卡方分布随机数
np.random.choice()#从a中有放回地随机挑选指定数量的样本
np.random.exponential()#生成指数分布随机数
np.random.f()#生成F分布随机数
np.random.gamma()#生成伽马分布随机数
np.random.geometric()#生成几何分布随机数
np.random.hypergeometric()#生成超几何分布随机数
np.random.laplace()#生成拉珀拉丝分布的随机数
np.random.logistic()#生成Logistic分布随机数
np.random.negative_binomial()#生成负二项分布随机数
np.random.lognormal()#生成对数正态分布随机数
np.random.multinomial()#生成多元正态分布随机数
np.random.normal()#生成正态分布随机数
np.random.pareto()#生成帕累托分布随机数
np.random.poisson()#生成泊松分布随机数
np.random.rand()#生成n维均匀分布随机数
np.random.randn()#生成n维正态分布随机数
np.random.randint()#生成指定范围的随机整数
np.random.random_sample()#生成[0,1)随机整数
np.random.standard_t()#生成标准的t分布随机数
np.random.uniform()#生成指定范围的均匀分布随机数
np.random.wald()#生成Wald分布随机数
np.random.weibull()#生成Weibull分布随机数