一、关于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类型)的更多相关文章

  1. python中的矩阵、多维数组----numpy

    https://docs.scipy.org/doc/numpy-dev/user/quickstart.html  (numpy官网一些教程) numpy教程:数组创建 python中的矩阵.多维数 ...

  2. python中的list和array的不同之处 2

    版权声明:本文为博主非原创文章,未经博主允许可以转载.     Python中的list和array的不同之处 python中的list是python的内置数据类型,list中的数据类不必相同的,而a ...

  3. [转]Python中的矩阵转置

    Python中的矩阵转置 via 需求: 你需要转置一个二维数组,将行列互换. 讨论: 你需要确保该数组的行列数都是相同的.比如: arr = [[1, 2, 3], [4, 5, 6], [7, 8 ...

  4. python中的list和array的不同之处 及转换

    python中的list和array的不同之处list是列表,可以通过索引查找数值,但是不能对整个列表进行数值运算 In [96]: b=[1,2] In [97]: b[1]Out[97]: 2In ...

  5. Python中,如何初始化不同的变量类型为空值

    参考文章  Python中,如何初始化不同的变量类型为空值 常见的数字,字符,很简单,不多解释. 列表List的其值是[x,y,z]的形式 字典Dictionary的值是{x:a, y:b, z:c} ...

  6. python中的矩阵、多维数组

    2. 创建一般的多维数组 import numpy as np a = np.array([1,2,3], dtype=int)  # 创建1*3维数组   array([1,2,3]) type(a ...

  7. 2.python中的矩阵、多维数组----numpy

    最近在将一个算法由matlab转成python,初学python,很多地方还不熟悉,总体感觉就是上手容易,实际上很优雅地用python还是蛮难的.目前为止,觉得就算法仿真研究而言,还是matlab用得 ...

  8. Python中的矩阵、多维数组:Numpy

    Numpy 是Python中科学计算的核心库.它提供一个高性能多维数据对象,以及操作这个对象的工具.部分功能如下: ndarray, 具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组. 用于对 ...

  9. python中的list和array的不同之处

    原文地址:  http://blog.csdn.net/liyaohhh/article/details/51055147#reply python中的list是python的内置数据类型,list中 ...

随机推荐

  1. sklearn机器学习-泰坦尼克号

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  2. Python的命名空间及作用域

    命名空间的分类 全局命名空间 是在程序从上到下被执行的过程中依次加载进内存的:放置了我们设置的所有变量名和函数名 局部命令空间 就是函数内部定义的名字:当调用函数的时候 才会产生这个名称空间 随着函数 ...

  3. Silver 操作Cookie

    public class CookiesUtils { public static void SetCookie(String key, String value) { SetCookie(key, ...

  4. 在Ajax返回多个值

    <html> <head> <title>AjaxTest</title> <script type="text/javascript& ...

  5. CNPM

    cnpm 代替 npm npm install -g cnpm --registry=https://registry.npm.taobao.org Reference 淘宝 NPM 镜像

  6. MVC、MVP和MVVC区别

    https://blog.csdn.net/victoryzn/article/details/78392128

  7. 在java1.8下使用jetty报错java.lang.CharSequence cannot be resolved

    环境: JDK: 1.8Jetty: jetty6,jetty7(在eclipse中使用run-jetty-run插件) 在JSP页面中使用StringBuilder或者StringBuffer,示例 ...

  8. 我的长大app开发教程第三弹:实现四个子页面绑定RadioButton

    在开始之前先上一张图 在上一节中我们实现了底部Button,这一弹我们要实现点击四个按钮分别切换到不同页面,我们可以把页面分为两部分,顶部栏和中间内容部分,我们可以通过线性布局包裹两部分内容,顶部栏又 ...

  9. 动态字段列表实现及List<T>排序

    public class StudentCardSortHelper<T> { //itemName 要排序的字段名 public static List<StudentCard&g ...

  10. office 2016 破解教程

    骤: 下载安装包——>安装(断网状态)——>下载破解工具——>破解完成 1. 下载 office2016,大家进入下面的链接进行 http://pan.baidu.com/s/1mi ...