You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python(不使用numpy)中将文本文件中的多矩阵数据分别存储?

拆分文本文件中的多矩阵并存储为独立变量

首先得明确你的文本文件里矩阵的分隔规则,常见的有两种情况,分别给你对应的实现方法:

情况1:矩阵之间用空行分隔

假设你的文件内容长这样:

1 2 3
4 5 6
7 8 9

10 11 12
13 14 15
16 17 18

可以按空行分割出每个矩阵的文本块,再转成二维列表(如果用numpy的话转成数组更方便):

# 读取文件内容
with open('matrices.txt', 'r') as f:
    content = f.read()

# 按空行分割成各个矩阵的文本块,过滤掉空的块
matrix_blocks = [block.strip() for block in content.split('\n\n') if block.strip()]

# 把每个文本块转成二维列表(或numpy数组)
matrices = []
for block in matrix_blocks:
    # 按行分割,每行转成数字列表
    matrix = [list(map(float, line.split())) for line in block.split('\n') if line.strip()]
    matrices.append(matrix)

# 赋值给独立变量
matrixA, matrixB = matrices  # 如果有更多矩阵就继续加,比如matrixA, matrixB, matrixC = matrices

如果用numpy处理数组(推荐,方便后续矩阵运算),只需要把转矩阵的部分改成:

import numpy as np

matrices = []
for block in matrix_blocks:
    matrix = np.array([list(map(float, line.split())) for line in block.split('\n') if line.strip()])
    matrices.append(matrix)

matrixA, matrixB = matrices

情况2:文件中有明确的矩阵名称标记

如果你的文件是带标记的,比如:

matrixA:
1 2 3
4 5 6

matrixB:
7 8 9
10 11 12

可以逐行读取,识别标记来切换当前处理的矩阵:

import numpy as np

current_matrix = None
matrix_dict = {}

with open('matrices.txt', 'r') as f:
    for line in f:
        line = line.strip()
        if not line:
            continue  # 跳过空行
        # 判断是不是矩阵名称行
        if line.endswith(':'):
            mat_name = line[:-1]
            current_matrix = []
            matrix_dict[mat_name] = current_matrix
        else:
            # 把行转成数字列表加入当前矩阵
            current_matrix.append(list(map(float, line.split())))

# 把字典里的矩阵转成numpy数组(可选)
for key in matrix_dict:
    matrix_dict[key] = np.array(matrix_dict[key])

# 提取成独立变量
matrixA = matrix_dict['matrixA']
matrixB = matrix_dict['matrixB']

这种方法更灵活,不管文件里有多少个矩阵,都能通过名称直接提取。

注意:如果你的矩阵元素是整数,把float改成int就行。

内容的提问来源于stack exchange,提问作者helpmeplz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 18:55:23