无名阁,只为技术而生。流水不争先,争的是滔滔不绝。

Numpy中np.dot与np.matmul的区别详解(图文)

Python Micheal 8个月前 (04-24) 122次浏览 已收录 扫描二维码
文章目录[隐藏]
Numpy中np.dot与np.matmul的区别详解(图文)

np.matmul

Numpy中np.dot与np.matmul的区别详解(图文)

NumPyPython 中广泛使用的科学计算库,它提供了两个用于执行矩阵乘法的函数:np.dot() 和 np.matmul()。这两个函数虽然都可以用于矩阵乘法,但它们之间存在一些差异,下面我们详细介绍它们的区别。

底层原理:

  1. np.dot():
    • np.dot() 函数是 NumPy 提供的一个通用的点积函数,可以用于计算向量的点积、矩阵乘法等。
    • 它的底层实现依赖于 BLAS (Basic Linear Algebra Subprograms) 库,这是一个高度优化的线性代数计算库。
    • np.dot() 可以处理不同维度的输入,如向量和矩阵的乘法,以及较为复杂的高维数组的点积计算。
  2. np.matmul():
    • np.matmul() 函数是 NumPy 2.0 版本引入的专门用于矩阵乘法的函数。
    • 它的底层实现也依赖于 BLAS 库,但与 np.dot() 相比,np.matmul() 更加关注于矩阵乘法这一特定的线性代数运算。
    • np.matmul() 只能处理二维数组(矩阵),不支持向量或高维数组的点积计算。

使用步骤:

  1. 导入 NumPy 库: 在使用 np.dot() 或 np.matmul() 之前,需要先导入 NumPy 库,通常使用 import numpy as np
  2. 准备输入数据: 根据需求,准备好要进行矩阵乘法运算的输入数据,通常是 NumPy 数组。
  3. 选择合适的函数: 根据输入数据的维度和具体需求,选择使用 np.dot() 还是 np.matmul()
  4. 执行矩阵乘法运算: 调用选择的函数,传入输入数据,获取计算结果。
  5. 处理结果: 根据需求,对计算结果进行进一步的数据处理和分析。

示例代码:

import numpy as np

# 示例 1: 向量和矩阵的乘法
v = np.array([1, 2, 3])
M = np.array([[1, 4, 7], 
              [2, 5, 8],
              [3, 6, 9]])

# 使用 np.dot()
result_dot = np.dot(v, M)
print("np.dot() result:", result_dot)
# Output: np.dot() result: [14 32 50]

# 使用 np.matmul()
result_matmul = np.matmul(v, M)
print("np.matmul() result:", result_matmul)
# Output: np.matmul() result: [14 32 50]

# 示例 2: 两个矩阵的乘法
A = np.array([[1, 2], 
              [3, 4]])
B = np.array([[5, 6],
              [7, 8]])

# 使用 np.dot()
result_dot = np.dot(A, B)
print("np.dot() result:\n", result_dot)
# Output: np.dot() result:
#  [[19 22]
#   [43 50]]

# 使用 np.matmul()
result_matmul = np.matmul(A, B)
print("np.matmul() result:\n", result_matmul)
# Output: np.matmul() result:
#  [[19 22]
#   [43 50]]

在这个示例中,我们演示了 np.dot() 和 np.matmul() 在不同场景下的使用。

在第一个示例中,我们进行了向量和矩阵的乘法。可以看到,两个函数的结果是一致的。

在第二个示例中,我们进行了两个矩阵的乘法。同样地,两个函数的结果也是一致的。

从这些示例中,我们可以看出 np.dot() 和 np.matmul() 在大多数情况下会给出相同的结果。但是,当输入数据的维度不同时,它们的行为可能会有所不同。

总的来说,np.matmul() 更加专注于矩阵乘法这一特定的线性代数运算,而 np.dot() 则更加通用,可以处理更广泛的向量和矩阵运算。根据具体的需求,选择合适的函数来执行矩阵乘法操作。

详解pandas.read_csv()(读取CSV文件)函数使用方法(图文详解1)

详解dataframe apply,pandas.DataFrame.apply()(应用函数到数据框)函数使用方法(图文详解1)

喜欢 (0)
[]
分享 (0)
关于作者:
流水不争先,争的是滔滔不绝