NumPy.dot()与Python中’*’操作的区别

  • Post category:Python

NumPy中的dot()函数和Python中的*操作,都可以用于矩阵的乘法运算,但是它们的表现却是不同的。

NumPy.dot()函数

NumPy中的dot()函数是一个矩阵的点乘运算,可以对两个数组(矩阵)进行乘积运算:

import numpy as np

a = np.array([[1,2],[3,4]])
b = np.array([[5],[6]])
c = np.dot(a,b)

print(c)

输出结果为:

[[17]
 [39]]

上述代码中,首先我们定义了两个数组a和b(矩阵),然后使用NumPy的dot()函数,对它们进行点乘运算,将结果保存在一个新的数组c中。如果两个数组的维度不符,会报错。

Python中的’*’操作

Python中的*操作在进行矩阵的乘法运算时,表现得和数乘操作一样,只能对某个数字乘上一个矩阵中的所有元素:

a = [[1,2],[3,4]]
b = [[5],[6]]
c = a * b

print(c)

输出结果为:

TypeError: can't multiply sequence by non-int of type 'list'

上述代码中,我们尝试使用Python中的*操作来对两个数组(矩阵)进行乘积运算,但是代码却报了TypeError的错误。

这是因为Python中的*操作只能对数字进行数乘操作,而不是对矩阵进行乘积操作。

综上所述,NumPy中的dot()函数和Python中的*操作都可以用于矩阵的乘法运算,但是它们的表现却是不同的,使用时需要根据需求进行选择。