为了区分三种乘法运算的规则,具体分析如下:

  1. import numpy as np

1. np.multiply()函数

函数作用

数组和矩阵对应位置相乘,输出与相乘数组/矩阵的大小一致

1.1数组场景

【code】

  1. A = np.arange(1,5).reshape(2,2)
  2. A

【result】

  1. array([[1, 2],
  2. [3, 4]])

  

【code】

  1. B = np.arange(0,4).reshape(2,2)
  2. B

【result】

  1. array([[0, 1],
  2. [2, 3]])

【code】

  1. np.multiply(A,B) #数组对应元素位置相乘

【result】

  1. array([[ 0, 2],
  2. [ 6, 12]])

 

1.2 矩阵场景

【code】

  1. np.multiply(np.mat(A),np.mat(B)) #矩阵对应元素位置相乘,利用np.mat()将数组转换为矩阵

【result】

  1. matrix([[ 0, 2],
  2. [ 6, 12]])

【code】

  1. np.sum(np.multiply(np.mat(A),np.mat(B))) #输出为标量

【result】

  1. 20

  

2. np.dot()函数

函数作用

对于秩为1的数组,执行对应位置相乘,然后再相加;

对于秩不为1的二维数组,执行矩阵乘法运算;超过二维的可以参考numpy库介绍。

2.1 数组场景

2.1.1 数组秩不为1的场景

【code】

  1. A = np.arange(1,5).reshape(2,2)
  2. A

【result】

  1. array([[1, 2],
  2. [3, 4]])

【code】

  1. B = np.arange(0,4).reshape(2,2)
  2. B

【result】

  1. array([[0, 1],
  2. [2, 3]])

  

【code】

  1. np.dot(A,B) #对数组执行矩阵相乘运算

【result】

  1. array([[ 4, 7],
  2. [ 8, 15]])

  

2.1.2 数组秩为1的场景

【code】

  1. C = np.arange(1,4)
  2. C

【result】

  1. array([1, 2, 3])

【code】

  1. D = np.arange(0,3)
  2. D

【result】

  1. array([0, 1, 2])

  

【code】

  1. np.dot(C,D) #对应位置相乘,再求和

【result】

  1. 8

  

2.2 矩阵场景

【code】

  1. np.dot(np.mat(A),np.mat(B)) #执行矩阵乘法运算

【result】

  1. matrix([[ 4, 7],
  2. [ 8, 15]])

  

3. 星号(*)乘法运算

作用

对数组执行对应位置相乘

对矩阵执行矩阵乘法运算

3.1 数组场景

【code】

  1. A = np.arange(1,5).reshape(2,2)
  2. A

【result】

  1. array([[1, 2],
  2. [3, 4]])

【code】

  1. B = np.arange(0,4).reshape(2,2)
  2. B

【result】

  1. array([[0, 1],
  2. [2, 3]])

【code】

  1. A*B #对应位置点乘

【result】

  1. array([[ 0, 2],
  2. [ 6, 12]])

  

  1.  
  1.  

3.2矩阵场景

【code】

  1. (np.mat(A))*(np.mat(B)) #执行矩阵运算

【result】

  1. matrix([[ 4, 7],
  2. [ 8, 15]])

------------------------------------------------

转载自:https://blog.csdn.net/zenghaitao0128/article/details/78715140

python中np.multiply()、np.dot()和星号(*)三种乘法运算的区别(转)的更多相关文章

  1. [转]python中np.multiply()、np.dot()和星号(*)三种乘法运算的区别

    转自https://blog.csdn.net/zenghaitao0128/article/details/78715140 为了区分三种乘法运算的规则,具体分析如下: import numpy a ...

  2. Python中斐波那契数列的四种写法

    在这些时候,我可以附和着笑,项目经理是决不责备的.而且项目经理见了孔乙己,也每每这样问他,引人发笑.孔乙己自己知道不能和他们谈天,便只好向新人说话.有一回对我说道,“你学过数据结构吗?”我略略点一点头 ...

  3. python核心高级学习总结3-------python实现进程的三种方式及其区别

    python实现进程的三种方式及其区别 在python中有三种方式用于实现进程 多进程中, 每个进程中所有数据( 包括全局变量) 都各有拥有⼀份, 互不影响 1.fork()方法 ret = os.f ...

  4. ASP.NET MVC中使用Unity进行依赖注入的三种方式

    在ASP.NET MVC中使用Unity进行依赖注入的三种方式 2013-12-15 21:07 by 小白哥哥, 146 阅读, 0 评论, 收藏, 编辑 在ASP.NET MVC4中,为了在解开C ...

  5. VC中加载LIB库文件的三种方法

    VC中加载LIB库文件的三种方法 在VC中加载LIB文件的三种方法如下: 方法1:LIB文件直接加入到工程文件列表中   在VC中打开File View一页,选中工程名,单击鼠标右键,然后选中&quo ...

  6. jQuery中detach&&remove&&empty三种方法的区别

    jQuery中empty&&remove&&detach三种方法的区别 empty():移除指定元素内部的所有内容,但不包括它本身 remove():移除指定元素内部的 ...

  7. 命令stat anaconda-ks.cfg会显示出文件的三种时间状态(已加粗):Access、Modify、Change。这三种时间的区别将在下面的touch命令中详细详解:

    7.stat命令 stat命令用于查看文件的具体存储信息和时间等信息,格式为"stat 文件名称". stat命令可以用于查看文件的存储信息和时间等信息,命令stat anacon ...

  8. python中List添加、删除元素的几种方法

    一.python中List添加元素的几种方法 List 是 Python 中常用的数据类型,它一个有序集合,即其中的元素始终保持着初始时的定义的顺序(除非你对它们进行排序或其他修改操作).在Pytho ...

  9. 详解Python中的__new__、__init__、__call__三个特殊方法(zz)

    __new__: 对象的创建,是一个静态方法,第一个参数是cls.(想想也是,不可能是self,对象还没创建,哪来的self)__init__ : 对象的初始化, 是一个实例方法,第一个参数是self ...

随机推荐

  1. ssh多台主机之间不用密码远程

    二.多台服务器相互无密码访问 多台服务器相互无密码访问,与两台服务器单向无密码访问的原理是一样的,只不过由于是多台服务器之间相互无密码访问,不能象两台服务器无密码登录那样直接上传,步骤如下: 1.在需 ...

  2. mysql从的配置文件

    mysql 从的配置文件 [client]port = 3306socket = /data/mysql/data/mysql.sock#default-character-set=utf8[mysq ...

  3. 用angular制作简单的选项卡

    现在angular变得挺火热的,自己也去简单的学习了一下,学了几天下来觉得angular果然好用,但是现在只是停留在比较浅的层面上,要想学好angular还是得下一番功夫的.学了一点新知识就想和大家分 ...

  4. vue中created、mounted、 computed,watch,method 等方法整理

    created:html加载完成之前,执行.执行顺序:父组件-子组件 mounted:html加载完成后执行.执行顺序:子组件-父组件 methods:事件方法执行 watch:watch是去监听一个 ...

  5. 通过GPLOT过程制作图形

    通过GPLOT过程制作图形 和数据报表一样,图形也是展现数据的重要方法,图形的直观效果是数据报表无法替代的.SAS/GRAPH是SAS进行数据可视化展现的重 要组成部分,具有强大的作图功能.可以展现的 ...

  6. Redis的启动及配置

    在redis已经安装完成的情况下,进入redis/bin目录下,输入命令: ./redis-server,就可以直接启动redis了,效果如图所示: 但是此时终端无法进行任何操作,按CTRL+c命令, ...

  7. 将n个东西分成n1,n2,n3,n4,....nr 共 r组分给r个人有多少种分法。

    (n!/(n1! *n2! *n3!..nr!) )   * r!/( 同数量组A的数量! 同数量组B的数量!....) 比方20个东西分成2,2,,2,2   3,3,3,3 8组分给8个人有多少种 ...

  8. lsf运行lsload命令显示“lsload: Host does not have a software license”

    因为这个问题也是花费好长时间了,对一个小白的我来说真的挺激动的.下面说一下我的解决思路吧.不过造成这个问题也有很多种原因,需要对症下药. 我入手解决是从这个网站上看到同样的问题,然后通过一个个排除最后 ...

  9. [swarthmore cs75] Compiler 6 – Garbage Snake

    课程回顾 Swarthmore学院16年开的编译系统课,总共10次大作业.本随笔记录了相关的课堂笔记以及第9次大作业. 赋值的副作用:循环元组 下面的代码展示了Python3是如何处理循环列表(pri ...

  10. document,element,node方法

    document方法: getElementById(id)                             返回指定结点的引用 getElementsByTagName_r(name)    ...