Numpy学习笔记之Numpy中的矩阵运算
2018-03-07 20:29
274 查看
原生List不支持乘积运算,而使用for 运算与列表表达式运算效率太低
%%timeit(自动循环多次取最快的运算时间取均值)和%%time(只运行一次)可以查看时间效率,%支持单行,%%支持多行
![](https://img-blog.csdn.net/20180306153238400?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQ3MzQ2ODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
numpy支持*运算
numpy把一维数组当成向量,把二维数组当成矩阵,支持向量和矩阵的运算,并进行了很好的优化
![](https://img-blog.csdn.net/2018030616015732?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQ3MzQ2ODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
/普通除法,结果为浮点数,//整除,取整数部分
![](https://img-blog.csdn.net/2018030616021387?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQ3MzQ2ODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![](https://img-blog.csdn.net/20180307192747961?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQ3MzQ2ODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![](https://img-blog.csdn.net/2018030719281562?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQ3MzQ2ODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![](https://img-blog.csdn.net/20180307192832104?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQ3MzQ2ODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
#矩阵与矩阵之间的运算(行列对应)
![](https://img-blog.csdn.net/20180306161322905?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQ3MzQ2ODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
乘法特殊
![](https://img-blog.csdn.net/20180306163326412?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQ3MzQ2ODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
矩阵乘法注意
k*m 与m*n的矩阵得到k*n的矩阵前一个的列与后一个的行要一致
![](https://img-blog.csdn.net/20180307193906283?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQ3MzQ2ODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
![](https://img-blog.csdn.net/20180307194005151?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQ3MzQ2ODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
#矩阵的转置
行变成列,列变成行
A.T
![](https://img-blog.csdn.net/20180307194047369?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQ3MzQ2ODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
向量和矩阵之间的运算
先将向量堆叠成和矩阵相应的shape再运算
A二维矩阵,v一维向量
使用np.vstack堆叠或使用tile方法(第一个参数传入堆叠的对象,第二个参数传入元组,行列依次堆叠几次)
![](https://img-blog.csdn.net/20180306180453962?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQ3MzQ2ODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
而直接v+A也是将向量与矩阵的每行进行加法运算,数与向量做加法即与向量的每个坐标值进行加法运算
结果相同
![](https://img-blog.csdn.net/20180306180717589?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQ3MzQ2ODM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
#向量与矩阵之间的乘法
v是1*2的向量,A是2*2的矩阵相乘dot方法:
v.dot(A) 看成1*2的行向量阵v 与 2*2的矩阵A 进行矩阵间的乘法运算,结果行向量
A.dot(v) 看成2*2 的矩阵A 与 2*1 的 列向量v 进行乘法运算 ,需要时Numpy会自动地把向量当成列向量,结果为列向量
前一个的行乘后一个额列
%%timeit(自动循环多次取最快的运算时间取均值)和%%time(只运行一次)可以查看时间效率,%支持单行,%%支持多行
numpy支持*运算
numpy把一维数组当成向量,把二维数组当成矩阵,支持向量和矩阵的运算,并进行了很好的优化
/普通除法,结果为浮点数,//整除,取整数部分
#矩阵与矩阵之间的运算(行列对应)
乘法特殊
矩阵乘法注意
k*m 与m*n的矩阵得到k*n的矩阵前一个的列与后一个的行要一致
#矩阵的转置
行变成列,列变成行
A.T
向量和矩阵之间的运算
先将向量堆叠成和矩阵相应的shape再运算
A二维矩阵,v一维向量
使用np.vstack堆叠或使用tile方法(第一个参数传入堆叠的对象,第二个参数传入元组,行列依次堆叠几次)
而直接v+A也是将向量与矩阵的每行进行加法运算,数与向量做加法即与向量的每个坐标值进行加法运算
结果相同
#向量与矩阵之间的乘法
v是1*2的向量,A是2*2的矩阵相乘dot方法:
v.dot(A) 看成1*2的行向量阵v 与 2*2的矩阵A 进行矩阵间的乘法运算,结果行向量
A.dot(v) 看成2*2 的矩阵A 与 2*1 的 列向量v 进行乘法运算 ,需要时Numpy会自动地把向量当成列向量,结果为列向量
前一个的行乘后一个额列
相关文章推荐
- 【python学习笔记】18:numpy数组函数与矩阵运算
- Machine Learning学习笔记:NumPy矩阵运算
- 图形学学习笔记5——向量矩阵运算
- Python.Numpy学习零碎笔记之矩阵创建
- opencv学习笔记(2)----矩阵运算
- numpy学习笔记-将条件逻辑表述为数组运算
- Armadillo C++ linear algebra library 学习笔记(4)——矩阵的运算
- numpy的学习笔记(五)—— 矩阵和通用函数
- 线性代数学习笔记二:矩阵及其运算
- 【python学习笔记】16:numpy数组四则运算
- numpy的矩阵运算笔记
- Python.Numpy学习零碎笔记之数组与矩阵
- Numpy学习笔记3-数组的运算
- 快速幂矩阵快速幂学习笔记
- C语言学习笔记3--运算符优先级 4种运算
- 《c++ primer》 第14章 重载运算与类型转换 学习笔记
- C#学习笔记-----C#枚举中的位运算权限分配
- MyCat 学习笔记 第八篇.数据分片 之 求摸运算分片
- R软件学习笔记-3(基本函数与运算)
- python学习笔记(2)--------Numpy