数据分析——numpy
前言:python数据分析的基础知识,简单总结,主要是为了方便自己写的时候查看(你们可能看不太清楚T^T),发现有用的方法,随时补充,欢迎指正
数据分析专栏:
数值计算——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) |
【注】基本的一定要会,其实多写一写就会了,用的时候可以查询

浙公网安备 33010602011771号