numpy是python数据分析的重要工具,其N维数组对象可以方便的进行各种数学计算。
ndarray是一种同构的多维容器,其元素类型必须相同。每个ndarray都有shape和dtype两个属性(注意是属性不是方法)
一、创建ndarray
创建ndarray的方法有很多,常用的有下面几种:
1、使用numpy的array方法将序列型对象转换为ndarray
这里将一个列表转换为了ndarray,也可以传入元组,嵌套列表等序列型对象
2、使用numpy的arange方法
3、使用zeros()、ones()等创建全0或全1数组或eye()、identity()创建单位矩阵
在创建矩阵时也可用通过dtype参数或通过astype方法指定数据类型。
二、矩阵操作
1、数组和标量间的运算
数组和标量间的运算会将标量值传到各个数组元素上进行运算
2、数组间的算术运算,相等大小的数组间运算会应用到元素级
3、索引和切片
numpy的数组索引和python列表语法一样
和列表最重要的区别是对numpy数组索引的改变会直接修改原数组
若想仅仅得到一份切片副本,则需显示的进行复制操作,arr[5:8],copy()
4、转置
numpy数组转置可以通过两个方法实现,一个是transpose()方法,另一个是T属性
5、numpy提供了很多元素级处理数组的方法
还有很多如abs,log,ceil,cos,sin,csoh,sinh,tan,tanh等方法,可以到官网查看
三、线性代数
numpy.linalg提供了很多进行线性代数运算的方法
diag 以一维数组的形式返回方阵的对角线元素或将一维数组转换为方阵
dot 矩阵乘法
trace 计算对角线元素的和
det 计算矩阵行列式
eig 计算方阵的本征值和本征向量
inv 计算方阵的逆
pinv 计算方阵的moore-penrose伪逆
svd 计算奇异值分解
qr 计算QR分解
solve 解线性方程组Ax=b,A为一个方阵
lstsq 计算Ax=b的最小二乘解