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


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

import numpy as np

1. np.multiply()函数

函数作用

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

1.1数组场景

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

A

array([[1, 2],

[3, 4]])

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

B

array([[0, 1],

[2, 3]])

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

array([[ 0,  2],

[ 6, 12]])

1.2 矩阵场景

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

matrix([[ 0,  2],

[ 6, 12]])

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

20

2. np.dot()函数

函数作用

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

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

2.1 数组场景

2.1.1 数组秩不为1的场景

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

A

array([[1, 2],

[3, 4]])

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

B

array([[0, 1],

[2, 3]])

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

array([[ 4,  7],

[ 8, 15]])

2.1.2 数组秩为1的场景

C = np.arange(1,4)

C

array([1, 2, 3])

D = np.arange(0,3)

D

array([0, 1, 2])

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

8

2.2 矩阵场景

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

matrix([[ 4,  7],

[ 8, 15]])

3. 星号(*)乘法运算

作用

对数组执行对应位置相乘

对矩阵执行矩阵乘法运算

3.1 数组场景

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

A

array([[1, 2],

[3, 4]])

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

B

array([[0, 1],

[2, 3]])

A*B  #对应位置点乘

array([[ 0,  2],

[ 6, 12]])

3.2矩阵场景

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

matrix([[ 4,  7],

[ 8, 15]])

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

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([[ 02],
       [ 6, 12]])

 

1.2 矩阵场景

【code】

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

【result】

matrix([[ 02],
        [ 6, 12]])

【code】

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

【result】

 

  

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([[ 47],
       [ 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([[ 47],
        [ 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*#对应位置点乘

【result】

array([[ 02],
       [ 6, 12]])

  



3.2矩阵场景

【code】

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

【result】

matrix([[ 47],
        [ 8, 15]])

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

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

    为了区分三种乘法运算的规则,具体分析如下: import numpy as np 1. np.multiply()函数 函数作用 数组和矩阵对应位置相乘,输出与相乘数组/矩阵的大小一致 1.1数组场景 ...

  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. 微服务、SpringCloud、k8s、Istio杂谈

    一.微服务与SOA “微服务”是一个名词,没有这个名词之前也有“微服务”,一个朗朗上口的名词能让大家产生一个认知共识,这对推动一个事务的发展挺重要的,不然你叫微服务他叫小服务的大家很难集中到一个点上. ...

  2. Educational Codeforces Round 76 (Rated for Div. 2) A. Two Rival Students 水题

    A. Two Rival Students There are

  3. ReactNative: 使用Text文本组件

    一.简言 初学RN,一切皆新.Text组件主要用于显示文本,Text组件的重要性不言而喻,无论是Web开发还是客户端开发,都离不开它.它具有响应特性,也即表现为当它被触摸时是否显示为高亮状态.在Web ...

  4. Seven Kinds of Testers - 七种类型的测试

    最近读了James大叔的一篇总结Tester类型的文章,获益良多.原文叫做Seven Kinds of Testers(链接:http://www.satisfice.com/blog/archive ...

  5. zookeeper — 实现分布式锁

    一.前言 在之前的文章中介绍过分布式锁的特点和利用Redis实现简单的分布式锁.但是分布式锁的实现还有很多其他方式,但是万变不离其宗,始终遵循一个特点:同一时刻只能有一个操作获取.这篇文章主要介绍如何 ...

  6. 天天向上的力量python(举一反三)

    天天向上的力量python实例(举一反三) 实例1: 一年365天,以第1天的能力值为基数,记为1.0,当好好学习时能力值相比前一天提高0.1%,没有学习实能力值相比前一天下降0.1%. 问:每天努力 ...

  7. python爬取网站视频保存到本地

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: Woo_home PS:如有需要Python学习资料的小伙伴可以加点 ...

  8. Javase之object类的概述

    object类的概述 object类是类层次结构的根类,每个类都使用object作为超类. 即每个类都直接或间接的继承object类. object类中方法介绍 hashCode public int ...

  9. 干货,Wireshark使用技巧-过滤规则

    - 过滤规则使用 在抓取报文时使用的规则,称为过滤规则,Wireshark底层是基于Winpcap,因此过滤规则是Winpcap定义的规则,设置过滤规则后,抓到的报文仅包含符合规则的报文,其它报文则被 ...

  10. 【LeetCode】437. 路径总和 III

    437. 路径总和 III 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点 ...