numpy模块的最后一部分。介绍下线性代数、伪随机数生成操作。
线性代数
线性代数(如矩阵乘法、矩阵分解、⾏列式以及其他⽅阵数学等)是任何数组库的重要组成部分。 通过 * 对两个⼆维数组相乘得到的是⼀个元素级的积,⽽不是⼀个矩阵点积。因此,NumPy 提供了⼀个⽤于矩阵乘法的dot 函数:In [223]: x=np.array([[1.,2., 3.],[4.,5., 6.]]) In [224]: y=np.array([[6.,23.], [-1.,7.],[8.,9.]]) In [225]: x Out[225]: array([[1.,2.,3.], [4.,5.,6.]]) In [226]: y Out[226]: array([[6., 23.], [-1.,7.], [8.,9.]]) In [227]: x.dot(y) Out[227]: array([[28.,64.], [67.,181.]])@ 符(类似 Python 3.5 )也可以⽤作中缀运算符,也可以进⾏矩阵乘法:
In [230]: x @ np.ones(3) Out[230]: array([ 6., 15.])
其中常用的numpy的线性代数表
| 函数 | 说明 |
| diag | 以一维数组的形式返回方阵的对角线(或非对角线)元素,或将一维数组转换为方阵(非对角线元素为0) |
| dot | 矩阵乘法 |
| trace | 计算对角线元素和 |
| det | 计算矩阵行列式 |
| eig | 计算方阵的本征值和本征向量 |
| inv | 计算方阵的逆 |
| pinv | 计算矩阵的Moore_Penrose伪造 |
| qr | 计算QR分解 |
| svd | 计算奇异值分解(SVD) |
| solve | 解线性方程组AX=b,其中A为一个方阵 |
| lstsq | 计算AX=B的最小二乘解 |
伪随机数生成
Python有内置random随机数模块,numpy.random模块对Python内置的random进⾏了补充。其常用random函数如下表
| 函数 | 说明 |
| seed | 确定随机数生成器的种子 |
| permutation | 返回一个序列的随机排列或者一个随机排列的范围 |
| shuffle | 岁一个序列就地随机排列 |
| rand | 产生均匀分布的样本值 |
| randint | 从给定的上下线跟范伟内随机选取整数 |
| randn | 产生正态分布(平均值为0,标准差为1) |
| binomial | 产生二项分布的样本值 |
| normal | 产生正态分布的样本值 |
| beta | 产生Beta分布的样本值 |
| chisquare | 产生卡方分布的样本值 |
| gamma | 产生Gamma分布的样本值 |
| uniform | 产生在(0,1)中均匀分布的样本值 |
学习到此完毕。



