前言
- Numpy 定义了
matrix
类型,使用该 matrix
类型创建的是矩阵对象,它们的加减乘除运算采用矩阵方式计算。但是由于 NumPy 中同时存在 ndarray
和 matrix
对象,因此用户很容易将两者弄混。这有违 Python 的“显式优于隐式”的原则,因此官方并不推荐在程序中使用 matrix
。在这里,我们仍然用 ndarray
来介绍。
一、矩阵和向量积
numpy.dot(a, b)
计算两个矩阵的乘积,如果是一维数组则是它们的内积。
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 3, 4, 5, 6])
z = np.dot(x, y)
print(z)
x = np.array([[1, 2, 3], [3, 4, 5], [6, 7, 8]])
print(x)
y = np.array([[5, 4, 2], [1, 7, 9], [0, 4, 5]])
print(y)
z = np.dot(x, y)
print(z)
二、矩阵特征值与特征向量
x = np.diag((1, 2, 3))
print(x)
print(np.linalg.eigvals(x))
a, b = np.linalg.eig(x)
print(a)
print(b)
三、范数
x = np.array([1, 2, 3, 4])
print(np.linalg.norm(x, ord=1))
print(np.sum(np.abs(x)))