Python 线性代数:矩阵与向量

一、先装依赖(唯一一步准备)

NumPy 是 Python 线性代数标准库,一行命令安装:

复制代码
pip install numpy

二、向量(Vector)

1. 什么是向量?

有序的数字列表,可以理解为:

  • 一维数组
  • 空间中的一个点 / 方向

线性代数中默认列向量,Python 里用一维 / 二维数组表示都可以。

2. 创建向量

复制代码
import numpy as np

# 1. 行向量(1行n列)
row_vec = np.array([1, 2, 3])  

# 2. 列向量(n行1列)→ 线性代数标准形式
col_vec = np.array([[1], [2], [3]])  

print("行向量:")
print(row_vec)
print("形状:", row_vec.shape)  # (3,)

print("\n列向量:")
print(col_vec)
print("形状:", col_vec.shape)  # (3, 1)

3. 向量核心运算

复制代码
v1 = np.array([1, 2, 3])
v2 = np.array([4, 5, 6])

# 1. 向量加法
print("加法:", v1 + v2)  # [5 7 9]

# 2. 向量数乘(数字×向量)
print("数乘:", 2 * v1)  # [2 4 6]

# 3. 点积(内积)→ 结果是一个数
dot = np.dot(v1, v2)
print("点积:", dot)  # 1×4 + 2×5 + 3×6 = 32

# 4. 向量长度(模/范数)
norm = np.linalg.norm(v1)
print("向量长度:", norm)

三、矩阵(Matrix)

1. 什么是矩阵?

二维数字表格,由行和列组成:

  • m 行 n 列矩阵记作 m×n
  • 向量是特殊的矩阵(1×n 或 n×1)

2. 创建矩阵

复制代码
# 2行3列矩阵
A = np.array([
    [1, 2, 3],
    [4, 5, 6]
])

print("矩阵 A:")
print(A)
print("形状:", A.shape)  # (2, 3) → 2行3列

3. 特殊常用矩阵

复制代码
# 1. 零矩阵
zero = np.zeros((2, 3))  

# 2. 单位矩阵(对角线1,其余0,必须是方阵)
I = np.eye(3)  

# 3. 全1矩阵
ones = np.ones((2, 2))  

print("单位矩阵:\n", I)

4. 矩阵核心运算

复制代码
A = np.array([[1,2],[3,4]])
B = np.array([[5,6],[7,8]])

# 1. 矩阵加法(形状必须相同)
print("A+B:\n", A + B)

# 2. 矩阵数乘
print("2×A:\n", 2 * A)

# 3. 矩阵转置(行变列,列变行)
print("A转置:\n", A.T)

# 4. 矩阵乘法(核心!)
# 规则:左矩阵列数 = 右矩阵行数
C = np.dot(A, B)  
# 或者 A @ B(Python3.5+推荐)
print("A×B:\n", A @ B)

5. 方阵必备运算(行数 = 列数)

复制代码
A = np.array([[1,2],[3,4]])

# 1. 行列式(标量)
det = np.linalg.det(A)
print("行列式:", det)

# 2. 逆矩阵(A⁻¹,只有行列式≠0才有)
inv_A = np.linalg.inv(A)
print("逆矩阵:\n", inv_A)

# 验证:A × A⁻¹ = 单位矩阵
print("验证:\n", A @ inv_A)

四、矩阵 × 向量(最常用组合)

这是机器学习、深度学习的基础运算:

复制代码
# 2×2矩阵
A = np.array([[1,2], 
              [3,4]])

# 2×1列向量
v = np.array([[1], 
              [2]])

# 矩阵×向量
result = A @ v
print("矩阵×向量结果:\n", result)

五、快速查表(速记)

运算 Python 代码
向量点积 np.dot(v1, v2) / v1@v2
向量长度 np.linalg.norm(v)
矩阵转置 A.T
矩阵乘法 A @ B / np.dot(A,B)
行列式 np.linalg.det(A)
逆矩阵 np.linalg.inv(A)
单位矩阵 np.eye(n)
相关推荐
怕浪猫5 小时前
RAG 面试 6 连问,从原理到优化全部覆盖
python·算法·面试
高洁015 小时前
具身智能中的世界模型训练
人工智能·python·深度学习·机器学习·transformer
无线通信科研笔记5 小时前
IEEE TVT 2026 论文精读与完整复现|相位误差如何重塑近场 RIS 的幅相响应
论文阅读·人工智能·python·算法·论文笔记
朝朝辞暮i5 小时前
VLA 系统学习第 1 课:VLA 到底在干什么?
人工智能·python·计算机视觉·vla
2601_962885726 小时前
如何用 Python 自动识别股票的支撑位与压力位?
开发语言·python
爱吃奥利奥_wen6 小时前
面向对象三板斧:封装、继承、多态,到底在“装“什么、“承“什么、“变“什么?
开发语言·经验分享·c#
北冥有鱼被烹6 小时前
VCSEL全景解析:与光模块NPO CPO的关系、市场量化分析与产业链影响
python
我可能是个假开发6 小时前
FTP Unicode 文件名导致 `550` 的问题分析与解决方案
java·开发语言·spring
caoerzhong7 小时前
中小企业上 WMS 该先上哪几块:JeeWMS 开源 Java 仓库管理系统的分批上线清单
java·python·开源
正在走向自律7 小时前
AI数据分析与可视化:从基础到应用实践
服务器·人工智能·python·机器学习·数据分析·pandas