使用Python调用Numpy库,实现计算矩阵的特征值和特征向量
时间: 2025-06-25 16:24:54 浏览: 12
在 Python 中使用 NumPy 库可以很方便地计算矩阵的特征值和特征向量。NumPy 提供了一个名为 `numpy.linalg.eig` 的函数用于此目的。
以下是具体的步骤及示例:
---
### **1. 导入 NumPy**
首先需要导入 NumPy 模块,在代码中通常将其简称为 `np`。
```python
import numpy as np
```
---
### **2. 定义矩阵**
创建一个二维数组作为输入矩阵。例如,我们可以定义一个 2x2 矩阵:
```python
A = np.array([[4, 2],
[1, 3]])
print("矩阵 A:")
print(A)
```
---
### **3. 计算特征值和特征向量**
通过调用 `numpy.linalg.eig()` 函数传入矩阵即可得到其特征值和对应的特征向量。
```python
eigenvalues, eigenvectors = np.linalg.eig(A)
# 输出结果
print("\n特征值:", eigenvalues)
print("对应特征向量组成的列向量集合(每列为一个特征向量):")
print(eigenvectors)
```
**解释:**
- 返回的第一个变量 (`eigenvalues`) 表示的是所有特征值;
- 第二个返回值 (`eigenvectors`) 则是一个二维数组,每一列表示与之相对应的一个归一化后的特征向量。
---
### **完整代码实例**
```python
import numpy as np
# 创建矩阵
A = np.array([[4, 2],
[1, 3]])
# 打印原始矩阵
print("矩阵 A:")
print(A)
# 调用 linalg.eig() 获取特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eig(A)
# 显示结果
print("\n特征值:", eigenvalues) # 特征值是一维数组形式存储
print("特征向量:") # 特征向量是以标准化的形式保存在一个矩阵里,每个特征向量占一列
for i in range(len(eigenvalues)):
print(f"对于 λ={eigenvalues[i]}:\t{eigenvectors[:,i]}")
```
运行以上程序将给出该方阵的所有特征值以及它们所关联的标准正交化的特征向量。
---
### § 相关问题 §:
1. 如果我的矩阵是非对称矩阵 (non-symmetric),是否仍可以用 `numpy.linalg.eig` 来求解它的特征值和特征向量?
2. 对于稀疏矩阵该如何高效计算特征值?
3. 我如何验证这些由 Numpy 得到的结果确实是正确的特征值和特征向量呢?
阅读全文
相关推荐


















