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

import numpy as np

1. np.multiply()函数

函数作用

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

1.1数组场景

【code】

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

【result】

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

  

【code】

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

【result】

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

【code】

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

【result】

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

 

1.2 矩阵场景

【code】

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

【result】

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

【code】

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

【result】

20

  

2. np.dot()函数

函数作用

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

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

2.1 数组场景

2.1.1 数组秩不为1的场景

【code】

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

【result】

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

【code】

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

【result】

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

  

【code】

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

【result】

array([[ 4,  7],
[ 8, 15]])

  

2.1.2 数组秩为1的场景

【code】

C = np.arange(1,4)
C

【result】

array([1, 2, 3])

【code】

D = np.arange(0,3)
D

【result】

array([0, 1, 2])

  

【code】

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

【result】

8

  

2.2 矩阵场景

【code】

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

【result】

matrix([[ 4,  7],
[ 8, 15]])

  

3. 星号(*)乘法运算

作用

对数组执行对应位置相乘

对矩阵执行矩阵乘法运算

3.1 数组场景

【code】

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

【result】

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

【code】

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

【result】

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

【code】

A*B  #对应位置点乘

【result】

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

  



3.2矩阵场景

【code】

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

【result】

matrix([[ 4,  7],
[ 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. Docker学习笔记:基础

    docker的概念 :docker是一个可供开发者在容器中 开发 部署 运行 应用的一个平台.通过使用Linux容器去部署应用的方式称为容器化. 基础概念 Images and Container i ...

  2. API setContentType(MIME) 参数说明

    HttpServletResponse的setContentType(MIME) API主要用以告诉浏览器服务器所传递的数据类型或服务器希望浏览器以何种方式解析和展示这些数据 其由两部分构成,如:te ...

  3. 【机器学习】异常检测算法(I)

    在给定的数据集,我们假设数据是正常的 ,现在需要知道新给的数据Xtest中不属于该组数据的几率p(X). 异常检测主要用来识别欺骗,例如通过之前的数据来识别新一次的数据是否存在异常,比如根据一个用户以 ...

  4. Java关键字this与super

    this有两个用途: 1.引用隐式参数(出现在方法名前的参数,显示参数是出现在方法名后位于括号里的参数,如:e.raiseSalary(10%),e是隐式参数,10%是显示参数):这里比较常见.形式如 ...

  5. H5新特性---Web Worker---Web Stroage

    今天的目标 3.1:h5新特性八--Web Worker---代码就3行 程序:program 存储在外存(磁盘)中代码 进程:Process/Task 将程序调用内存中,分配空间 线程:Thread ...

  6. python 基础———— 字符串常用的调用 (图)

    Python 常用的 字符串调用方法 这里用到了pycharm ( 使用Python  有力的工具) 下载地址https://www.jetbrains.com/pycharm/download/#s ...

  7. PS扣签名

    1.用PS打开签名: 2.在图层界面切换到[通道],选择一个黑白分明或者明暗明显的签名图通道.按着“Ctrl”键就会显示出手指和方块的图标,按键的同时左击一下选择的通道: 3.切换到第一项的[图层]界 ...

  8. html4

    一.span标签:能让某几个文字或者某个词语凸显出来 <p> 今天是11月份的<span>第一天</span>,地铁卡不打折了 </p> 二.字体风格 ...

  9. Jquery动态添加/删除表格行和列

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  10. You just run!

    第一篇博客,无关技术,有关身体. 写一篇跑步干货 装备篇 用过的鞋: 光脚,拖鞋,人字拖,回力板鞋,皮鞋,特步,鸿星尔克,李宁超轻13,ASICS  gt2000,阿迪低端. 1,非常推荐攒钱买一双a ...