NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,是学习数据挖掘的基础,今天我们就来总结下numpy的一些基础用法。
首先,在讲numpy之前,我先带领大家预习下大学学习过的矩阵的基础知识。
1、矩阵的基本概念
矩阵:由m×n个数排列成 的m行n列的数表,称为m行n列矩阵。
实矩阵:元素是实数的矩阵。
复矩阵:元素是负数的矩阵。
方阵:行数和列数相等的矩阵。
行矩阵(或行向量):只有一行的矩阵。
列矩阵(或列向量):只有一列的矩阵。
零矩阵:矩阵的元素全部是0的矩阵。
单位矩阵:n行n列,且主对角线上都是1,其他位置都是0的矩阵(主对角线上元素都是1,其他位置是0的方阵)
2、矩阵的运算
矩阵加法:同型矩阵中各元素对应相加。如图:
矩阵加法规则
数乘矩阵:需要相乘的数对矩阵中的每个元素做乘法操作,如图:
数乘矩阵
注:矩阵相加与数乘矩阵合起来,称为矩阵的线性运算。
矩阵与矩阵相乘:一个m行s列的矩阵与一个s行n列的矩阵相乘,得到一个m×n的矩阵。如图:
矩阵乘法
注:注意:只有当第一个矩阵的列数等于第二个矩阵的行数时,两个矩阵才能相乘。且矩阵乘法不一定满足交换律。
3、矩阵的转置
转置矩阵:把矩阵A的行换成同序数的列得到的新矩阵,叫做A的转置矩阵,如图:
矩阵转置
对称矩阵:如果A为n阶方阵,如果满足A=At(A的转置),那么A为对称阵。如图
对称矩阵
相应的,如果满足A=-At(A的转置),那么A为反对称阵。如图
反对称矩阵
好了,以上就是关于矩阵的一些基础回顾,有这些基础概念的小伙伴可以直接略过,下面正式总结一下numpy的基础用法。
1、numpy读取文本文件形成一个矩阵
numpy读取文件生成矩阵
通过索引及切片选取其中的元素:
取第2行第5列数据
取所有行第2列数据
取所有列第3行数据
2、用numpy.array创建矩阵
array创建矩阵
注意:numpy.array中的元素类型必须一致。
3、numpy.array中进行判断操作(==)
用“==”判断
用判断逻辑值作为索引取数
逻辑与判断(&):
逻辑与判断
逻辑或判断(|):
逻辑或判断
4、用astype()函数对矩阵的元素类型进行转换
元素类型转换
5、numpy运算,极值及求和
求极值及求和
6、通过numpy.arange()及reshape()函数构造矩阵
reshape构造矩阵
7、初始化矩阵函数numpy.zeros()和numpy.ones()
生成0矩阵
生成一个元素全为1的矩阵
8、生成随机数矩阵numpy.random.random()函数和numpy.linspace()函数
生成指定元素的行向量
9、用numpy进行矩阵运算
矩阵加减法:
矩阵减法
矩阵加法
矩阵乘法:
a=np.random.random((3,2))
b=np.random.random((2,3))
#矩阵的乘法,用.dot表示,如果用*,表示的是对应位置相乘,那么暗指这两个矩阵必须是同型矩阵
c=a.dot(b)
矩阵乘法