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

作者:o_Eagle_o 时间:2023-03-23 13:16:16 

目录
  • 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]])

来源:https://blog.csdn.net/zenghaitao0128/article/details/78715140

标签:python,np.multiply(),np.dot(),星号(,)
0
投稿

猜你喜欢

  • Golang sync包中errgroup的使用详解

    2024-02-08 23:19:08
  • python爬取各省降水量及可视化详解

    2023-08-04 15:19:57
  • 为MySQL提权简单方法

    2009-08-29 15:21:00
  • Pytorch中的 torch.distributions库详解

    2021-05-17 22:26:47
  • pandas删除行删除列增加行增加列的实现

    2022-10-27 13:22:55
  • django的ORM模型的实现原理

    2022-08-26 00:57:33
  • Python测试框架pytest介绍

    2023-08-03 01:47:59
  • Python实现图片指定位置加图片水印(附Pyinstaller打包exe)

    2023-08-13 04:27:16
  • Mysql DNS反向解析导致连接超时过程分析(skip-name-resolve)

    2024-01-18 03:00:59
  • Python访问Redis的详细操作

    2022-03-13 13:22:25
  • 最新解决'nvidia-smi' 不是内部或外部命令也不是可运行的程序

    2022-07-01 16:30:06
  • Oracle误添加数据文件删除方法

    2009-07-02 12:21:00
  • Python的ORM框架SQLAlchemy入门教程

    2023-01-17 03:41:05
  • Python爬虫实现模拟点击动态页面

    2022-05-19 05:21:19
  • Python 不同对象比较大小示例探讨

    2023-06-11 01:13:32
  • Python使用smtplib 实现单发和群发邮件验证码

    2023-07-10 13:56:50
  • Python中内置的日志模块logging用法详解

    2023-07-25 05:04:12
  • ajax请求get与post的区别总结

    2024-04-29 13:58:25
  • 飞扬远程获取类Asp xmlHttp 源码

    2010-04-03 20:37:00
  • python中时间、日期、时间戳的转换的实现方法

    2022-03-20 13:37:12
  • asp之家 网络编程 m.aspxhome.com