文章目录
概括:Numpy+Scipy+pandas+matplotlib
NumPy基本操作
一.ndarry-数组与标量、数组之间的运算
1.优点
- 数组不用循环即可对每个元素执行批量的算术运算操作,这个过程叫做矢量化,即用数组表达式代替循环的做法。
- 矢量化数组运算性能比纯Python方式快上一两个数据级。
- 大小相等的两个数组之间的任何算术运算都会将其运算应用到元素级上的操作。
2.元素级操作
在NumPy中,大小相等的数组之间的运算,为元素级运算,即只用于位置相同的元素之间,所得的运算结果组成一个新的数组,运算结果的位置跟操作数位置相同。
二.ndarry- 数组的矩阵积(matrix product)
- 矩阵:多维数组即矩阵
- 矩阵积(matrix product):两个二维矩阵(行和列的矩阵)满足第一个矩阵的列数与第二个矩阵的行数相同,那么可以进行矩阵的乘法,即矩阵积,矩阵积不是元素级的运算。也称为点积、数量积。
1.矩阵积规则
2.矩阵积和其他运算实例
三.ndarry- 多维数组的索引与数组切片
1.多维数组的索引
2.布尔类型索引
- 利用布尔类型的数组进行数据索引,最终返回的结果是对应索引数组中数据为True位置的值
- reshape(-1)是自动判断要几列
3. 花式索引(Fancy indexing)
指的是利用整数数组进行索引的方式
4.数组的切片
注意:NumPy中通过切片得到新数组,只是原来数组的一个视图,因此对新数组进行操作也会影响原数组
四.ndarry-数组的转置与轴对换
- 数组转置是指将shape进行重置操作,并将其值重置为原始shape元组的倒置,比如原始的shape值为:(2,3,4),那么转置后的新元组的shape的值为: (4,3,2)f
- 对于二维数组而言(矩阵)数组的转置其实就是矩阵的转置
- 可以通过调用数组的transpose函数或者T属性进行数组转置操作
1.transpose()转置
arr=np.arange(40).reshape(5,-1)
print(u'原数组的shape:',arr.shape)
arr
arr1=arr.transpose()
print(u'通过transpose函数转置后数组的shape值:',arr1.shape)
arr1
2.T属性转置
arr=np.arange(40).reshape(5,-1)
print(u'原数组的shape:',arr.shape)
arr
arr2=arr.T
print(u'通过T属性转置后数组的shape值:',arr1.shape)
arr2
五.通用函数(快速的元素级数组成函数)/常用函数(一元函数+二元函数)
1.ufunc
numpy模块中对ndarray中数据进行快速元素级运算的函数,也可以看做是简单的函数(接受一个或多个标量值,并产生一个或多个标量值)的矢量化包装器
2.一元函数
- 函数:
- 实例:
3.二元函数
六.ndarry-聚合函数
聚合函数是对一组值(eg一个数组)进行操作,返回一个单一值作为结果的函数。当然聚合函数也可以指定对某个具体的轴进行数据聚合操作;常将的聚合操作有:
1.最小值
arr=np.array([[1,2,3,4,5],
[6,7,8,9,10]
])
print("arr=",arr)
print("min=",arr.min)
2.最大值
arr=np.array([[1,2,3,4,5],
[6,7,8,9,10]
])
print("arr=",arr)
print("max=",arr.max)
3.平均值
arr=np.array([[1,2