关于python中的矩阵乘法(array和mat类型)
一、关于python中的矩阵乘法,我们一般有两种数据格式可以实现:np.array()类型和np.mat()类型;
对于这两种数据类型均有三种操作方式:
(1)乘号 *
(2)np.dot()
(3)np.multiply()
而这三种操作方式在操作这两种数据格式时又有点区别,下面一一列出来:
import numpy as np #np.array() type
#1. np.dot()
a = np.array([[1 , 2] , [3 , 4]] , dtype = np.float)
b = np.array([[1 , 2] , [3 , 4]] , dtype = np.float)
c = np.dot(a , b)
print(c)
#output:[[ 7. 10.],[ 15. 22.]] #2. *
d = a * b
print(d)
#output:[[ 1. 4.],[ 9. 16.]] #3. np.multiply()
e = np.multiply(a , b)
print(e)
#output:[[ 1. 4.],[ 9. 16.]] #np.mat() type
#4. *
A = np.mat([[1 , 2] , [3 , 4]] , dtype = np.float)
B = np.mat([[1 , 2] , [3 , 4]] , dtype = np.float)
C = A * B
print(C)
#output:[[ 7. 10.],[ 15. 22.]] #5. np.dot()
D = np.dot(A , B)
print(D)
#output:[[ 7. 10.],[ 15. 22.]] #6. np.multiply()
E = np.multiply(A , B)
print(E)
#output:[[ 1. 4.],[ 9. 16.]] # np.mat() * np.array()
F = A * a;
print(F)
#output:[[ 7. 10.],[ 15. 22.]]
由上面的代码可以总结如下:
(1)np.dot()对于这两种数据格式均为矩阵乘法;
(2)np.multiply()对于这两种数据格式均为按元素相乘;
(3)符号“*”对于array类型是矩阵乘法,对于mat类型是按元素类型相乘,而当一个array类型乘上一个mat类型时,则为矩阵乘法;
二、pytorch中的乘法:
(1)矩阵相乘:torch.mm();
(2)对应元素点乘:torch.mul();
关于python中的矩阵乘法(array和mat类型)的更多相关文章
- python中的矩阵、多维数组----numpy
https://docs.scipy.org/doc/numpy-dev/user/quickstart.html (numpy官网一些教程) numpy教程:数组创建 python中的矩阵.多维数 ...
- python中的list和array的不同之处 2
版权声明:本文为博主非原创文章,未经博主允许可以转载. Python中的list和array的不同之处 python中的list是python的内置数据类型,list中的数据类不必相同的,而a ...
- [转]Python中的矩阵转置
Python中的矩阵转置 via 需求: 你需要转置一个二维数组,将行列互换. 讨论: 你需要确保该数组的行列数都是相同的.比如: arr = [[1, 2, 3], [4, 5, 6], [7, 8 ...
- python中的list和array的不同之处 及转换
python中的list和array的不同之处list是列表,可以通过索引查找数值,但是不能对整个列表进行数值运算 In [96]: b=[1,2] In [97]: b[1]Out[97]: 2In ...
- Python中,如何初始化不同的变量类型为空值
参考文章 Python中,如何初始化不同的变量类型为空值 常见的数字,字符,很简单,不多解释. 列表List的其值是[x,y,z]的形式 字典Dictionary的值是{x:a, y:b, z:c} ...
- python中的矩阵、多维数组
2. 创建一般的多维数组 import numpy as np a = np.array([1,2,3], dtype=int) # 创建1*3维数组 array([1,2,3]) type(a ...
- 2.python中的矩阵、多维数组----numpy
最近在将一个算法由matlab转成python,初学python,很多地方还不熟悉,总体感觉就是上手容易,实际上很优雅地用python还是蛮难的.目前为止,觉得就算法仿真研究而言,还是matlab用得 ...
- Python中的矩阵、多维数组:Numpy
Numpy 是Python中科学计算的核心库.它提供一个高性能多维数据对象,以及操作这个对象的工具.部分功能如下: ndarray, 具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组. 用于对 ...
- python中的list和array的不同之处
原文地址: http://blog.csdn.net/liyaohhh/article/details/51055147#reply python中的list是python的内置数据类型,list中 ...
随机推荐
- JSON语法、对象、遍历数组的区别和基本操作
JSON 语法规则 JSON 语法是 javascript 对象表示语法的子集. 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 JSON 名称/值对 JSON 数据的书写格式是: ...
- Spring_xml方式开发
1. spring核心配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&q ...
- 《Apache Kafka实战》读书笔记-调优Kafka集群
<Apache Kafka实战>读书笔记-调优Kafka集群 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.确定调优目标 1>.常见的非功能性要求 一.性能( ...
- hadoop datanode 启动出错
FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for block pool Block po ...
- Office-kms
Office 2016 VOL Office Office 2016 Pro Plus 32 位专业增强版 文件名 SW_DVD5_Office_Professional_Plus_2016_W32_ ...
- HTTP Method小结
GET 从指定的url上获取内容 POST 提交body中的内容给服务器中指定的url中,属于非幂等的(non-idempotent)请求 HEAD 从指定的url上获取header内容(类似Get方 ...
- MyEclipse项目中,让修改后的Servlet文件立即运行生效方法
运行的时候用Debug模式发布如图 java 自动生成get set方法的快捷键是什么? Re:在myeclipse中按住shift+alt+s选择 generate getters and sett ...
- sql关联更新
/****** Script for SelectTopNRows command from SSMS ******/SELECT * FROM [LFBMP.Operating].[dbo].[Sh ...
- Shell编程(七)函数
1. 函数开始 #!/bin/bash foo() { echo "Function foo is called"; } echo "-=start=-" fo ...
- tomcat配置context的crossContext属性应用案例
在tomcat下,context元素有一个crossContext属性,如果配置为true,则可以实现在同一个tomcat下的多个web应用之间实现ServletContext对象访问.该属性主要用于 ...