python中np.multiply()、np.dot()和星号(*)三种乘法运算的区别
时间: 2024-10-15 16:15:37 浏览: 35
在Python的NumPy库中,`np.multiply()`、`np.dot()` 和 星号(*) 这三个操作分别对应于不同的数学运算:
1. `np.multiply()` (元素级乘法):这个函数对两个数组进行逐元素的乘法运算,相当于每个对应位置的元素相乘,返回的结果是一个新的数组,保留原数组的形状。
示例:
```python
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = np.multiply(a, b)
print(c) # 输出 [ 4 10 18]
```
2. `np.dot()` (向量/矩阵乘法):这个函数用于计算两个数组的点积(如果一个是标量,那么就是简单相乘),或者两个二维数组之间的矩阵乘法。对于两个二维数组,它会按照矩阵乘法规则进行计算,结果通常是另一个数组。
示例:
```python
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
result = np.dot(a, b)
print(result) # 输出 [[19 22], [43 50]]
```
3. 星号(*):当涉及的是数值类型的数组时,这是Python的标准算术乘法,适用于单个数与数组,数组与数组之间的乘法。如果其中一个操作数是标量,那么所有元素都会乘以那个标量;如果是两个数组,它等同于`np.multiply()`,除非它们有特定的维度可以做内积。
示例:
```python
scalar = 2
array = np.array([1, 2, 3])
d = scalar * array # 或者 d = array * scalar,效果一样
print(d) # 输出 [2 4 6]
```
阅读全文