本文主要是介绍Python中的元素相乘与矩阵相乘(附Demo),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 前言
- 1. 元素相乘
- 2. 矩阵相乘
- 3. 差异
前言
深度学习的矩阵相乘引发的Bug,由此深刻学习这方面的相关知识
在Python中,特别是使用NumPy库时,元素相乘和矩阵相乘是处理数组和矩阵时的常见操作
1. 元素相乘
元素相乘是指对两个相同形状的数组中的对应元素逐个相乘
multiply()函数可以实现这一操作,运算符*也可以用于元素相乘
import numpy as np# 定义两个数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])# 元素相乘
result = np.multiply(a, b)
print("元素相乘的结果(使用multiply()):", result)
截图如下:

import numpy as np# 定义两个数组
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[7, 8, 9], [10, 11, 12]])# 元素相乘
result = a * b
print("元素相乘的结果(使用*运算符):\n", result)
截图如下:

2. 矩阵相乘
矩阵相乘遵循线性代数中的矩阵乘法规则,即结果矩阵的第(i, j)个元素是第一个矩阵的第i行与第二个矩阵的第j列对应元素的乘积之和
使用dot()函数、matmul()函数以及@运算符来进行矩阵相乘
dot():
import numpy as np# 定义两个矩阵
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])# 矩阵相乘
result = np.dot(A, B)
print("矩阵相乘的结果(使用dot()):\n", result)
matmul():
import numpy as np# 定义两个矩阵
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])# 矩阵相乘
result = np.matmul(A, B)
print("矩阵相乘的结果(使用matmul()):\n", result)
@:
import numpy as np# 定义两个矩阵
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])# 矩阵相乘
result = A @ B
print("矩阵相乘的结果(使用@运算符):\n", result)
这三者截图都如下:

3. 差异
| 功能 | 函数/运算符 | 描述 |
|---|---|---|
| 元素相乘 | multiply() | NumPy中的元素级乘法函数,接受任意数量的数组参数,并将它们的对应元素逐个相乘 |
| *运算符 | 也用于元素级乘法,其行为与multiply()函数相同 | |
| 矩阵相乘 | dot() | 用于计算两个数组的点积(内积)。如果传入的参数是一维数组,则计算的是它们的标量积。如果传入的是二维数组(矩阵),则计算的是矩阵乘法 |
| matmul() | 用于执行矩阵乘法。不支持一维数组的点积,而是将它们视为行或列向量进行矩阵相乘 | |
| @运算符 | Python 3.5及更高版本引入的矩阵乘法运算符。用于执行矩阵乘法 |
这篇关于Python中的元素相乘与矩阵相乘(附Demo)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!