iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python中np.multiply()、np.dot()和星号(*)三种乘法运算的区别详解
  • 709
分享到

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

2024-04-02 19:04:59 709人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录1. np.multiply()函数1.1数组场景1.2 矩阵场景2. np.dot()函数2.1 数组场景2.2 矩阵场景3. 星号(*)乘法运算3.1 数组场景3.2矩阵场景

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


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]])

到此这篇关于python中np.multiply()、np.dot()和星号(*)三种乘法运算的区别详解的文章就介绍到这了,更多相关Python np.multiply()、np.dot()和星号内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python中np.multiply()、np.dot()和星号(*)三种乘法运算的区别详解

本文链接: https://www.lsjlt.com/news/122086.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作