亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Python

Python NumPy 矩阵运算:转置、加法、乘法与切片实战指南

Python NumPy 矩阵运算:转置、加法、乘法与切片实战指南

数学建模、科学计算和数据分析常依赖高效操作二维数据。Python 中矩阵可用普通列表创建,更强大的是用 NumPy 库。本指南演示最常见矩阵操作,附清晰代码示例和最佳实践提示。

什么是矩阵?

矩阵是按行列组织的数字(或其他数据类型)矩形数组。Python 核心语言无专用矩阵类型,但可用嵌套列表或 NumPy 的 ndarray 表示,后者提供快速向量化操作。

用嵌套列表创建矩阵

嵌套列表是构建矩阵最简单方式。每个内层列表代表一行:

# 3x3 矩阵
M1 = [[8, 14, -6], [12, 7, 4], [-11, 3, 21]]
print(M1)

输出:

[[8, 14, -6], [12, 7, 4], [-11, 3, 21]]

读取数据

通过行列索引访问元素。打印每行最后一个元素:

for row in M1:
    print(row[-1])

输出:

-6
4
21

矩阵加法

两矩阵形状相同时,元素级加法直观:

M2 = [[3, 16, -6], [9, 7, -4], [-1, 3, 13]]
# 结果矩阵
M3 = [[M1[i][j] + M2[i][j] for j in range(len(M1[0]))] for i in range(len(M1))]
print(M3)

输出:

[[11, 30, -12], [21, 14, 0], [-12, 6, 34]]

元素级乘法

同样可对应元素相乘:

M3 = [[M1[i][j] * M2[i][j] for j in range(len(M1[0]))] for i in range(len(M1))]
print(M3)

输出:

[[24, 224, 36], [108, 49, -16], [11, 9, 273]]

用 NumPy 进行高效矩阵运算

NumPy 提供专用数组类型和丰富向量化操作。用 pip install numpy 安装并按 np 导入:

import numpy as np

创建矩阵

M1 = np.array([[5, -10, 15], [3, -6, 9], [-4, 8, 12]])
print(M1)

输出:

[[ 5 -10 15]
 [ 3 -6 9]
 [-4 8 12]]

基本运算

示例:矩阵点积

M1 = np.array([[3, 6], [5, -10]])
M2 = np.array([[9, -18], [11, 22]])
print(M1.dot(M2))

输出:

[[ 93 78]
 [-65 -310]]

切片

用 array[row_start:row_end, col_start:col_end] 切片行列:

M = np.array([[2, 4, 6, 8, 10],
              [3, 6, 9, -12, -15],
              [4, 8, 12, 16, -20],
              [5, -10, 15, -20, 25]])
print(M[1:3, 1:4])  # 第 1-2 行,第 1-3 列
print(M[:, 3])      # 所有行,第 4 列
print(M[:1, :])     # 第 1 行,所有列
print(M[:3, :2])    # 前 3 行,前 2 列

输出:

[[ 6 9 -12]
 [ 8 12 16]]
[ 8 -12 16 -20]
[[ 2 4 6 8 10]]
[[ 2 4]
 [ 3 6]
 [ 4 8]]

访问行和列

# 行
print(M[0])    # 第一行
print(M[-1])   # 最后一行
# 列
print(M[:, 0]) # 第一列
print(M[:, -1])# 最后一列

核心要点

Python

  1. C++ 数组完全指南:声明、初始化、多维数组与指针技巧
  2. 精通 Python 字典:创建、操作与进阶技巧
  3. Python print() 函数完全指南:基础用法、空行打印与自定义结束符
  4. Python str.count() 完全指南:统计字符与子串出现次数实战
  5. Python format() 字符串格式化完全指南:占位符、格式化规范、类与字典应用
  6. Python 字符串 find() 方法完全指南:语法、参数、替代方案与计数技巧
  7. 精通 Python Lambda 函数:实用示例与最佳实践
  8. Python abs() 函数:计算数字与复数的绝对值
  9. Python round() 函数详解与实战示例
  10. 精通 Python range() 函数:从基础到高级用法
  11. 精通 Python map() 函数:语法、示例与最佳实践
  12. Python timeit():精准测量代码执行时间与实战示例