NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,是学习数据挖掘的基础,今天我们就来总结下numpy的一些基础用法。

首先,在讲numpy之前,我先带领大家预习下大学学习过的矩阵的基础知识。

1、矩阵的基本概念

矩阵:由m×n个数排列成 的m行n列的数表,称为m行n列矩阵。

实矩阵:元素是实数的矩阵。

复矩阵:元素是负数的矩阵。

方阵:行数和列数相等的矩阵。

行矩阵(或行向量):只有一行的矩阵。

列矩阵(或列向量):只有一列的矩阵。

零矩阵:矩阵的元素全部是0的矩阵。

单位矩阵:n行n列,且主对角线上都是1,其他位置都是0的矩阵(主对角线上元素都是1,其他位置是0的方阵)

2、矩阵的运算

矩阵加法:同型矩阵中各元素对应相加。如图:

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_矩阵乘法

矩阵加法规则

数乘矩阵:需要相乘的数对矩阵中的每个元素做乘法操作,如图:

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_python数据分析基础密码_02

数乘矩阵

注:矩阵相加与数乘矩阵合起来,称为矩阵的线性运算。

矩阵与矩阵相乘:一个m行s列的矩阵与一个s行n列的矩阵相乘,得到一个m×n的矩阵。如图:

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_矩阵乘法_03

矩阵乘法

注:注意:只有当第一个矩阵的列数等于第二个矩阵的行数时,两个矩阵才能相乘。且矩阵乘法不一定满足交换律。

3、矩阵的转置

转置矩阵:把矩阵A的行换成同序数的列得到的新矩阵,叫做A的转置矩阵,如图:

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_转置_04

矩阵转置

对称矩阵:如果A为n阶方阵,如果满足A=At(A的转置),那么A为对称阵。如图

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_python数据分析基础密码_05

对称矩阵

相应的,如果满足A=-At(A的转置),那么A为反对称阵。如图

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_矩阵乘法_06

反对称矩阵

好了,以上就是关于矩阵的一些基础回顾,有这些基础概念的小伙伴可以直接略过,下面正式总结一下numpy的基础用法。

1、numpy读取文本文件形成一个矩阵

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_python数据分析基础密码_07

numpy读取文件生成矩阵

通过索引及切片选取其中的元素:

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_对称矩阵_08

取第2行第5列数据

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_对称矩阵_09

取所有行第2列数据

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_转置_10

取所有列第3行数据

2、用numpy.array创建矩阵

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_矩阵乘法_11

array创建矩阵

注意:numpy.array中的元素类型必须一致。

3、numpy.array中进行判断操作(==)

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_python数据分析基础密码_12

用“==”判断

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_python数据分析基础密码_13

用判断逻辑值作为索引取数

逻辑与判断(&):

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_对称矩阵_14

逻辑与判断

逻辑或判断(|):

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_python数据分析基础密码_15

逻辑或判断

4、用astype()函数对矩阵的元素类型进行转换

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_python数据分析基础密码_16

元素类型转换

5、numpy运算,极值及求和

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_转置_17

求极值及求和

6、通过numpy.arange()及reshape()函数构造矩阵

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_矩阵乘法_18

reshape构造矩阵

7、初始化矩阵函数numpy.zeros()和numpy.ones()

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_转置_19

生成0矩阵

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_对称矩阵_20

生成一个元素全为1的矩阵

8、生成随机数矩阵numpy.random.random()函数和numpy.linspace()函数

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_对称矩阵_21

生成指定元素的行向量

9、用numpy进行矩阵运算

矩阵加减法:

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_对称矩阵_22

矩阵减法

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_矩阵乘法_23

矩阵加法

矩阵乘法:

a=np.random.random((3,2))

b=np.random.random((2,3))

#矩阵的乘法,用.dot表示,如果用*,表示的是对应位置相乘,那么暗指这两个矩阵必须是同型矩阵

c=a.dot(b)

Python怎样在矩阵中得到一个数的所在行 python求矩阵的行数_转置_24

矩阵乘法