Python矩阵创建与乘法实现:如何进行8×4与4×6矩阵相乘?
Python矩阵乘法实现(8×4与4×6矩阵示例)
这里提供两种实现矩阵乘法的方法,包含矩阵创建和运算细节:
一、手动实现(不依赖第三方库,适合理解原理)
1. 创建指定维度的矩阵
用Python内置列表推导式可以快速生成随机整数矩阵,示例如下:
import random # 生成8行4列的矩阵A,元素为1-10的随机整数 matrix_a = [[random.randint(1, 10) for _ in range(4)] for _ in range(8)] # 生成4行6列的矩阵B,元素为1-10的随机整数 matrix_b = [[random.randint(1, 10) for _ in range(6)] for _ in range(4)]
2. 实现矩阵乘法逻辑
矩阵乘法的核心规则是:结果矩阵的第i行第j列元素,等于矩阵A第i行与矩阵B第j列对应元素的乘积之和。同时要先校验维度合法性(A的列数必须等于B的行数):
def matrix_multiply(a, b): if len(a[0]) != len(b): raise ValueError("矩阵A的列数必须等于矩阵B的行数") # 初始化结果矩阵,维度为8×6,初始值全0 result = [[0 for _ in range(len(b[0]))] for _ in range(len(a))] for i in range(len(a)): for j in range(len(b[0])): # 计算点积 for k in range(len(b)): result[i][j] += a[i][k] * b[k][j] return result # 执行乘法运算 matrix_c = matrix_multiply(matrix_a, matrix_b) # 打印结果的前2行(避免输出过多内容) print("手动实现的结果矩阵前2行:") for row in matrix_c[:2]: print(row)
二、用NumPy实现(推荐,适合实际项目)
NumPy是Python数值计算的标准库,矩阵运算效率远高于手动实现,语法也更简洁。
1. 创建NumPy矩阵
用np.random.randint可以快速生成指定维度的随机整数矩阵:
import numpy as np # 创建8×4的矩阵A np_matrix_a = np.random.randint(1, 10, size=(8, 4)) # 创建4×6的矩阵B np_matrix_b = np.random.randint(1, 10, size=(4, 6))
2. 执行矩阵乘法
NumPy支持两种直观的乘法方式:
# 方法1:使用@运算符(Python 3.5+支持) np_matrix_c = np_matrix_a @ np_matrix_b # 方法2:使用np.dot()函数 # np_matrix_c = np.dot(np_matrix_a, np_matrix_b) # 打印结果维度和前2行 print("NumPy结果矩阵维度:", np_matrix_c.shape) print("NumPy结果矩阵前2行:") print(np_matrix_c[:2])
注意:手动实现仅适合理解矩阵乘法的底层逻辑,实际开发中优先使用NumPy,尤其是处理大规模矩阵时,效率差异会非常明显。
内容的提问来源于stack exchange,提问作者Sanjay
相关产品推荐
相关产品推荐

