数据分析——numpy

前言:python数据分析的基础知识,简单总结,主要是为了方便自己写的时候查看(你们可能看不太清楚T^T),发现有用的方法,随时补充,欢迎指正

数据分析专栏:

  1. 数据分析——python基础
  2. 数据分析——numpy
  3. 数据分析——pandas
  4. 数据分析——数据可视化
  5. 数据分析——数据处理实例

数值计算——numpy

1、 数组相关函数

1.1数组的创建与操作

1、数组的创建、索引
arr=np.array([1,2,3])
索引参考之前的列表
arr[np.ix_([0,-1],[1,2,3])]//获取第一行、最后一行和第二列、第三列、第四列构成的数组

2、数据的属性
	type(arr)//查看数组的数据结构
	arr.ndim//查看数据的维数
	arr.shape//行列数
	arr.dtype//数据的类型
	arr.size//数据的元素个数

3、数组的处理
	arr.reshape(1,2)//改变数组的形状*注意怎么改变,但是真实形状没变(与resize的区别)		
	arr.reshape(-1,order='F/T')---->按列(行)降为一维
	np.vstack([arr1,arr2])//纵向叠加数组
	np.hstack([arr1,arr2])//横向叠加数组,要注意两个数组的shape

1.2数组的运算

1、四则运算
	符号加法:np.add(arr1,arr2)
	符号减法:np.subtract(arr1,arr2)
	符号乘法:np.multiply(arr1,arr2)
	符号除法:np.divide(arr1,arr2)
	//,**,%--->整除、指数、余数
	【注】亦可用于数值运算

2、比较运算
	直接用>,<,=即可,返回bool值
	【补】bool索引,arr1.[arr1>arr2]//返回arr1中大于arr2的元素
	np.where(arr1>5,0,arr1)----->将arr1中大于5的元素改为0

3、广播运算(*)
	针对数组形状不同时的运算
	*输入数组的维度不等,但是要求从右到左对应维度值相等,不足会自动补1
	*如果对应维度值不等,要保证其中一个为1

1.3常用数学和统计函数

函数 作用
np.fabs() 取绝对值
np.exp() 以e为低的指数
np.modf() 返回小数部分和整数部分
np.power() 指数
np.log2 以2为低的对数
np.min(arr,axis=1/0) 返回行/列最小值
np.sum(arr,axis=1/0) 返回行/列求和

【注】很多,这里不一一列举,经常看,避免自己傻乎乎的像写c语言一样去求

2、线性代数(矩阵)相关计算

函数 作用
np.zeros/ones 生成零、1矩阵
np.eye 生成单位矩阵
np.dot 矩阵的点乘
np.diag 取对角线元素生成一维矩阵
np.transpose 转置
np.inner 两个矩阵的内积
np.trace 矩阵主对角线元素和

【注】同上,用的时候可以查询

3、随机生成数

1、random.uniform(a,b)用于生成一个指定范围内的随机浮点数
2、random.random()用于生成一个0到1之间的随机浮点数
3、random.randint(a,b)用于生成一个指定范围内的整数
4、random.randrange([start],[stop],[step])从指定范围内,按指定基数递增的集合中获取一个随机数
5、random.seed(n)用于改变随机数生成器的种子,指定随机数生成时所用的算法
6、numpy.random.randn(d0, d1, …, dn)是从标准正态分布中返回一个或多个样本值。
7、numpy.random.rand(d0, d1, …, dn)的随机样本位于[0, 1)中,d0等是维度
8、numpy.random.randint(low,high=None,size=None,dtype)生成指定范围的随机数
函数 作用
seed() 设置随机种子
nomal(loc,scal,size) 正态分布
exponential(scale,size) 指数分布
rand() 均匀分布随机数(0,1)
randn() 标准正态分布随机数(-1,1)

【注】基本的一定要会,其实多写一写就会了,用的时候可以查询

posted @ 2019-09-26 20:41  Tao_RY  阅读(132)  评论(0)    收藏  举报