python矩阵乘法基础小结
Python的numpy矩阵乘法相关:
1.直接对array之间使用表示进行点乘,维度较低的array_x1最高纬度(设为n维)的数字,必须与纬度较高array_x2对应维度上的数字相同。x1和x2第i维度(i>n)的数字要不然相同,要不然其中一者为1,即可相加。【乘法要求矩阵最末端的唯独对齐,因此此处的维度是从右往左计算】并且矩阵点乘不分左右。(及要求对其末尾的维度即可)
eg:可行的计算:(1,3,1,1)(3,2,5),(1,3,1,5)(3,2,5),(2,3)(1,2,1)
不可行的计算:(1,3,2,3)*(3,1,5)
2.使用matmul进行矩阵之间的相乘,(a@b或者np.matmul(x1,x2)),要求前一个矩阵的列数必须等于后一个矩阵的行数。
3.使用dot进行矩阵之间的相乘,(np.dot(x1,x2)),要求同上
2,3区别,matmul在直接匹配以后不会添加其他维度,而dot会
eg:a(1,3,2),b(1,1,2,3)
a@b.shape=(1,1,3,3)
Np.dot(a,b).shape(1,3,1,1,3)
有关einsum,两指定的维度进行相乘,没指定就求和。
```python
X = np.array([[[1, 5], [2, 6]], [[3, 7], [4, 8]]])
A = np.array([[1, 2], [3, 4], [5, 6]])
>>> X
array([[[1, 5],[2, 6]],[[3, 7],[4, 8]]])
>>> A
array([[1, 2],[3, 4],[5, 6]])
>>> X.shape
(2, 2, 2)
>>> A.shape
(3, 2)
>>> Y = np.einsum('kij, lk -> lij', X, A)
>>> Y.shape
(3, 2, 2)
>>> Y
array([[[ 7, 19],[10, 22]],[[15, 43],[22, 50]],[[23, 67],[34, 78]]])
计算过程如下
图片转不过来凑活看吧
python矩阵乘法基础小结相关推荐
- python 矩阵乘法
一 np.dot() 同线性代数中矩阵乘法的定义.np.dot(A, B)表示: 对二维矩阵,计算真正意义上的矩阵乘积. 对于一维矩阵,计算两者的内积. import numpy as np# 2-D ...
- python矩阵乘法
原理: python中矩阵乘法,可以通过 NumPy 的np.dot()函数计算(乘积也称为点积). np.dot()接收两个NumPy数组作为参数,并返回数组的乘积.类似于数学中的两个矩阵相乘,A中 ...
- python矩阵乘法分治算法_矩阵乘法的Strassen算法详解 --(算法导论分治法求矩阵)...
1 题目描述 2 思路分析 3 解法 4 小结 1 题目描述 请编程实现矩阵乘法,并考虑当矩阵规模较大时的优化方法. 2 思路分析 根据wikipedia上的介绍:两个矩阵的乘法仅当第一个矩阵B的列数 ...
- python矩阵乘法菜鸟_Python中的几种矩阵乘法(转)
一. np.dot() 1.同线性代数中矩阵乘法的定义.np.dot(A, B)表示: 对二维矩阵,计算真正意义上的矩阵乘积. 对于一维矩阵,计算两者的内积. 2.代码 [code] import ...
- python矩阵乘法 点乘_转(matlab和numpy矩阵乘法异同)
广义的矩阵的矩阵乘法包括:矩阵相乘,矩阵点乘,向量乘法与向量点乘,内积. 对应的MATLAB有[* , .* , dot]三种运算符.分别表示的相乘,点乘和内积. 而在numpy中呢,也有*和dot两 ...
- python 矩阵乘法 跳过nan_奇怪的numpy矩阵运算bug
记录一个昨晚调到4点的奇妙bug 昨晚把服务器调试正确的训练程序放到集群上跑,发现其中有个depth map转点云的函数结果不正确,正常结果点云坐标会非常小,最大值不会超过2,但是集群上数值有好几百. ...
- python矩阵乘法算法_Python算法|矩阵链乘法
概述 矩阵乘法是一个满足结合律的运算.显然,对于矩阵A.B.C来说,(AB)C 与 A(BC) 是等价的,我们可以根据自己的心情选择任意的运算顺序,总之,结果都是一样的. 糟糕的是,对计算机来说可不是 ...
- Python:矩阵乘法函数(高教社,《Python编程基础及应用》习题4-11)
学习记录与分享 PTA教学平台 题目 设计一个Python函数,计算两个矩阵(二维列表)的乘积. 函数接口定义 def multiply(a,b,p,q,r) a是一个p行q列的二维列表:b是一个q行 ...
- python矩阵乘法_鱼书——第一章 Python入门
one 第一章 1.1 Python是什么 Python是一个简单.易读.易记的编程语言,而且是开源的,可以免费地自由使用.Python可以用类似英语的语法编写程序,编译起来也不费力,因此我们可以很轻 ...
最新文章
- 如何关闭事件跟踪程序
- 50个令人大开眼界的 Matplotlib 可视化项目
- bzoj 2251: [2010Beijing Wc]外星联络
- WordPress的默认循环
- show slave status\G中的Read_Master_Log_Pos和Relay_Log_Pos的(大小)关系
- ASP.NET Core Web API下事件驱动型架构的实现(三):基于RabbitMQ的事件总线
- 5中bug vue_苹果官网出BUG!这些都只要一两百元
- c语言文件读写_学生信息管理系统(C语言\单向链表\文件读写)
- LeetCode 4Sum 4个数之和
- 价值5000元的报表分享
- 信捷XC系列PLC-编程
- 吉林大学超星学习通05
- 学习笔记 | 深度学习相关研究与展望 Review of deep learning
- select、poll、epoll、多线程实现并发请求处理
- 全球首位AI评委亮相“83行代码挑战赛”,评分“快准狠”
- #P00603. 倒水
- 深入 javascript 之 call函数 用法
- 全景图的种类、360度三维实拍全景
- linux mint安装金山快盘
- Dubbo的使用和原理