NumPy库学习之dot函数

NumPy库学习之dot函数

一、简介

NumPy是一个Python科学计算的基础包,提供了大量的数学函数用于对数组进行操作。dot函数是NumPy库中用于计算两个数组的点积的函数。点积是两个向量元素对应相乘后求和的结果,如果两个数组的维度不匹配,则无法进行点积运算。

二、语法和参数

dot函数的基本语法如下:

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

参数说明:

  • a:第一个输入数组。
  • b:第二个输入数组。
  • out:可选参数,用于指定输出数组的内存位置。

三、实例

3.1 一维数组的点积
import numpy as np

# 创建两个一维数组
a = np.array([1, 2, 3])
b = np.array([0, 1, 0])

# 计算点积
result = np.dot(a, b)
print(result)

输出:

2
3.2 二维数组与一维数组的点积
# 创建一个二维数组和一个一维数组
a = np.array([[1, 2], [3, 4]])
b = np.array([1, 0])

# 计算点积
result = np.dot(a, b)
print(result)

输出:

[1 3]
3.3 二维数组的矩阵乘法
# 创建两个二维数组
a = np.array([[1, 2], [3, 4]])
b = np.array([[2, 0], [1, 2]])

# 计算矩阵乘法,即两个矩阵的点积
result = np.dot(a, b)
print(result)

输出:

[[ 4  4]
 [10  8]]

四、注意事项

  • 点积要求参与运算的数组在相应的维度上是兼容的。对于一维数组,它们的长度必须相同;对于二维数组,第一个数组的列数必须与第二个数组的行数相匹配。
  • dot函数可以用于计算两个向量的点积,也可以用于矩阵乘法。
  • 如果指定了out参数,计算结果将被存储在这个参数指定的数组中,这可以节省内存,尤其是在处理大型数组时。
  • NumPy还提供了@运算符作为dot函数的快捷方式,例如:a @ b 等同于 np.dot(a, b)

五、什么时候点积?什么时候矩阵乘?

在NumPy中,np.dot函数的行为取决于其输入参数的维度。以下是点积和矩阵乘法(乘积)的执行条件:

5.1 点积
  • 当两个参数都是一维数组(向量)时,np.dot执行点积。
  • 结果是一个标量值,即两个向量对应元素相乘后求和的结果。
5.2 矩阵乘法(乘积)
  • 当至少有一个参数是二维数组(矩阵),并且第一个参数的列数与第二个参数的行数相匹配时,np.dot执行矩阵乘法。
  • 结果是一个二维数组,其维度是第一个参数的行数乘以第二个参数的列数。
5.3 特殊情况
  • 如果第一个参数是二维数组,第二个参数是一维数组,并且一维数组的长度与二维数组的列数相等,np.dot将执行矩阵与向量的点积(广播实现),结果是一个向量。
  • 如果第一个参数是一维数组,第二个参数是二维数组,并且二维数组的行数与一维数组的长度相等,np.dot将执行向量与矩阵的乘法,结果是一个向量。
5.4 总结
  • 点积总是涉及两个一维数组。
  • 矩阵乘法可以涉及两个二维数组或一个一维数组和一个二维数组,但必须满足维度兼容性条件。
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值