python中np.multiply()、np.dot()和星号(*)三种乘法运算的区别(转)
为了区分三种乘法运算的规则,具体分析如下:
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()和星号(*)三种乘法运算的区别(转)的更多相关文章
- [转]python中np.multiply()、np.dot()和星号(*)三种乘法运算的区别
转自https://blog.csdn.net/zenghaitao0128/article/details/78715140 为了区分三种乘法运算的规则,具体分析如下: import numpy a ...
- Python中斐波那契数列的四种写法
在这些时候,我可以附和着笑,项目经理是决不责备的.而且项目经理见了孔乙己,也每每这样问他,引人发笑.孔乙己自己知道不能和他们谈天,便只好向新人说话.有一回对我说道,“你学过数据结构吗?”我略略点一点头 ...
- python核心高级学习总结3-------python实现进程的三种方式及其区别
python实现进程的三种方式及其区别 在python中有三种方式用于实现进程 多进程中, 每个进程中所有数据( 包括全局变量) 都各有拥有⼀份, 互不影响 1.fork()方法 ret = os.f ...
- ASP.NET MVC中使用Unity进行依赖注入的三种方式
在ASP.NET MVC中使用Unity进行依赖注入的三种方式 2013-12-15 21:07 by 小白哥哥, 146 阅读, 0 评论, 收藏, 编辑 在ASP.NET MVC4中,为了在解开C ...
- VC中加载LIB库文件的三种方法
VC中加载LIB库文件的三种方法 在VC中加载LIB文件的三种方法如下: 方法1:LIB文件直接加入到工程文件列表中 在VC中打开File View一页,选中工程名,单击鼠标右键,然后选中&quo ...
- jQuery中detach&&remove&&empty三种方法的区别
jQuery中empty&&remove&&detach三种方法的区别 empty():移除指定元素内部的所有内容,但不包括它本身 remove():移除指定元素内部的 ...
- 命令stat anaconda-ks.cfg会显示出文件的三种时间状态(已加粗):Access、Modify、Change。这三种时间的区别将在下面的touch命令中详细详解:
7.stat命令 stat命令用于查看文件的具体存储信息和时间等信息,格式为"stat 文件名称". stat命令可以用于查看文件的存储信息和时间等信息,命令stat anacon ...
- python中List添加、删除元素的几种方法
一.python中List添加元素的几种方法 List 是 Python 中常用的数据类型,它一个有序集合,即其中的元素始终保持着初始时的定义的顺序(除非你对它们进行排序或其他修改操作).在Pytho ...
- 详解Python中的__new__、__init__、__call__三个特殊方法(zz)
__new__: 对象的创建,是一个静态方法,第一个参数是cls.(想想也是,不可能是self,对象还没创建,哪来的self)__init__ : 对象的初始化, 是一个实例方法,第一个参数是self ...
随机推荐
- dt常用类
经常使用的一些datatable的操作,包括一些过滤去重的方法 using System; using System.Collections; using System.Collections.Gen ...
- python爬虫-百度百科百名红通人员名单
爬虫代码: import urllib.request import os, re from bs4 import BeautifulSoup import xlwt URL = "http ...
- 【机器学习】主成分分析法 PCA (I)
主成分分析算法是最常见的降维算法,在PCA中,我们要做的是找到一个方向向量,然后我们把所有的数都投影到该向量上,使得投影的误差尽可能的小.投影误差就是特征向量到投影向量之间所需要移动的距离. PCA的 ...
- 重写toFixed()方法
1.直接在原型上修改,仍然使用元调用方式 Number.prototype.toFixed = function (exponent) { return parseInt(this * Math.po ...
- Mac- appium 环境配置
一: 下载 appium : https://bitbucket.org/appium/appium.app/downloads/ 下载安装完,打开appium,安全性与隐私设置 检测提示: ...
- SpringBoot_定制banner
SpringBoot项目在启动时会打印一个banner 这个banner 是可以定制的, 在resources 目录下创建一个banner.txt 文件,在这个文件中写入的文本将在项目启动时打印出来. ...
- VS2015配置OpenCV,使用mfc摄像头程序测试
转自:https://blog.csdn.net/Lee_Dk/article/details/80466523 这只是介绍了如何加入OpenCV,怎么查找OpenCV请看出处. 新建一个项目.找到属 ...
- oracle执行计划走偏处理步骤
-- sql执行时间select a.EXECUTIONS,a.ELAPSED_TIME,a.ELAPSED_TIME/a.EXECUTIONS/1000/1000 as 秒,a.SQL_ID,a.H ...
- html文件上传保存-(.html and string translate into .html )
//上传h5编辑器编辑的html内容 uploadHtml(newsId?: any) { const news = newsId !== undefined ? newsId : 'new'; le ...
- .net HttpListener 很慢
使用 HttpListener 做的webserver ,撒逻辑没有,内网跨机器访问,都要200ms 替换方案 EvHttpSharp.dll 使用了 libevent_core,libevent ...