优草派 > Python

np.dot()函数的用法详解

刘国华         优草派

在Python中,NumPy是一个非常流行的数学库,它提供了大量的数组和矩阵操作函数。其中,np.dot()函数是一个非常重要的函数,用于计算两个数组的矩阵乘法。本文将详细介绍np.dot()函数的用法。

一、np.dot()函数的基本用法

np.dot()函数的用法详解

np.dot()函数的基本用法非常简单,它的语法如下:

np.dot(a, b, out=None)

其中,a和b是要进行矩阵乘法的两个数组,可以是一维或多维数组,但是它们的维度必须匹配。out是一个可选参数,用于指定输出的结果。

下面是一个简单的例子,演示了np.dot()函数的基本用法:

import numpy as np

a = np.array([[1, 2], [3, 4]])

b = np.array([[5, 6], [7, 8]])

c = np.dot(a, b)

print(c)

输出结果为:

[[19 22]

[43 50]]

这个例子中,数组a和b都是二维数组,它们的维度都是2x2。通过np.dot()函数计算得到的结果数组c也是一个2x2的数组,保存了矩阵乘积的结果。

二、多维数组的矩阵乘法

除了二维数组之外,np.dot()函数还支持多维数组的矩阵乘法。对于多维数组的矩阵乘法,np.dot()函数将沿着最后两个维度进行计算,而前面的维度都将保持不变。

下面是一个例子,演示了多维数组的矩阵乘法:

import numpy as np

a = np.random.rand(3, 4, 5)

b = np.random.rand(3, 5, 6)

c = np.dot(a, b)

print(c.shape)

输出结果为:

(3, 4, 6)

在这个例子中,数组a是一个3x4x5的三维数组,数组b是一个3x5x6的三维数组。通过np.dot()函数计算得到的结果数组c是一个3x4x6的三维数组,保存了矩阵乘积的结果。

三、矩阵乘法的广播机制

在进行矩阵乘法时,如果两个数组的维度不完全匹配,那么NumPy会使用广播机制来进行自动扩展。具体来说,如果两个数组的某个维度长度相同,或其中一个数组的某个维度长度为1,那么这两个数组在该维度上就可以进行广播。

下面是一个例子,演示了矩阵乘法的广播机制:

import numpy as np

a = np.array([[1, 2], [3, 4]])

b = np.array([5, 6])

c = np.dot(a, b)

print(c)

输出结果为:

[17 39]

在这个例子中,数组a是一个2x2的二维数组,数组b是一个长度为2的一维数组。由于数组b的长度和数组a的第二个维度长度相同,所以NumPy会自动对数组b进行广播,将其扩展为一个2x1的二维数组。然后,就可以对两个数组进行矩阵乘法了。

四、np.dot()函数和@运算符的关系

除了使用np.dot()函数之外,还可以使用@运算符来进行矩阵乘法。实际上,@运算符本质上就是np.dot()函数的简写形式。下面是一个例子,演示了@运算符的使用:

import numpy as np

a = np.array([[1, 2], [3, 4]])

b = np.array([[5, 6], [7, 8]])

c = a @ b

print(c)

输出结果和之前的例子一样:

[[19 22]

[43 50]]

五、总结

本文详细介绍了np.dot()函数的用法,包括基本用法、多维数组的矩阵乘法、矩阵乘法的广播机制以及np.dot()函数和@运算符的关系。掌握了这些知识,就可以更加灵活地使用NumPy进行数组和矩阵运算。

  • 微信好友

  • 朋友圈

  • 新浪微博

  • QQ空间

  • 复制链接

取消
5天短视频训练营
新手入门剪辑课程,零基础也能学
分享变现渠道,助你兼职赚钱
限时特惠:0元
立即抢
新手剪辑课程 (精心挑选,简单易学)
第一课
新手如何学剪辑视频? 开始学习
第二课
短视频剪辑培训班速成是真的吗? 开始学习
第三课
不需要付费的视频剪辑软件有哪些? 开始学习
第四课
手机剪辑app哪个好? 开始学习
第五课
如何做短视频剪辑赚钱? 开始学习
第六课
视频剪辑接单网站APP有哪些? 开始学习
第七课
哪里可以学短视频运营? 开始学习
第八课
做短视频运营需要会什么? 开始学习
【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。

客服热线:0731-85127885

湘ICP备19005950号-1  

工商营业执照信息

违法和不良信息举报

举报电话:0731-85127885 举报邮箱:tousu@csai.cn

优草派  版权所有 © 2024