np.dot()函数和*的区别
时间: 2024-06-13 11:07:46 浏览: 88
np.dot()函数的用法详解
np.dot()函数和*的区别如下:
1. *是逐元素相乘,即对应位置的元素相乘,而np.dot()是矩阵乘法,需要满足矩阵乘法的条件。
2. 对于两个一维数组,*和np.dot()的结果是一样的。
3. 对于二维数组,*是逐元素相乘,而np.dot()是矩阵乘法,需要满足矩阵乘法的条件,即第一个矩阵的列数等于第二个矩阵的行数。
4. 对于高维数组,*是逐元素相乘,而np.dot()是在最后两个维度上进行矩阵乘法。
下面是一个例子,展示了*和np.dot()的区别:
```python
import numpy as np
# 一维数组
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a * b) # 输出:[ 4 10 18]
print(np.dot(a, b)) # 输出:32
# 二维数组
c = np.array([[1, 2], [3, 4]])
d = np.array([[5, 6], [7, 8]])
print(c * d) # 输出:[[ 5 12] [21 32]]
print(np.dot(c, d)) # 输出:[[19 22] [43 50]]
# 高维数组
e = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
f = np.array([[[9, 10], [11, 12]], [[13, 14], [15, 16]]])
print(e * f) # 输出:[[[ 9 20] [33 48]] [[65 84] [105 128]]]
print(np.dot(e, f)) # 输出:[[[[ 31 34] [ 43 50]] [[ 69 78] [ 97 110]]] [[[105 114] [143 156]] [[181 198] [239 260]]]]
```
阅读全文