首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中将输入数据存储到多个矩阵中?

如何在Python中将输入数据存储到多个矩阵中?
EN

Stack Overflow用户
提问于 2022-09-08 08:44:42
回答 1查看 25关注 0票数 0

我有一个包含多个矩阵的文本文件:

代码语言:javascript
复制
A 3 3
1 1 1
2 2 2
3 3 3
[space]
B 3 2
9 9 9
7 7 7
[space]
C 2 2
7 7
7 7

我想在python中读取这个输入文件,并将它存储在多个矩阵中,如:

matrixA = [...] # first matrix

matrixB = [...] # second matrix

..。

等等。我知道如何在python中读取外部文件,但不知道如何将该输入文件划分为多个矩阵,如何才能这样做呢?

EN

回答 1

Stack Overflow用户

发布于 2022-09-08 08:57:56

可以这样解析该文件:

代码语言:javascript
复制
import numpy as np

SPLIT_SEQUENCE = '[space]'
INPUT_FILE = 'test.txt'

with open(INPUT_FILE) as f:
    matrix_data = f.read().split(SPLIT_SEQUENCE)

matrixes = {}
for d in matrix_data:
    parts = [s for s in d.split('\n') if s]
    header = parts[0].split()
    name, shape = header[0], (int(header[2]), int(header[1]))
    matrixes[name] = np.zeros(shape)

    for i, part in enumerate(parts[1:]):
        for j, value in enumerate(part.split()):
            matrixes[name][i, j] = int(value)

matrixA = matrixes['A']
matrixB = matrixes['B']
matrixC = matrixes['C']

结果:

代码语言:javascript
复制
print(matrixA)
[[1. 1. 1.]
 [2. 2. 2.]
 [3. 3. 3.]]

print(matrixB)
[[9. 9. 9.]
 [7. 7. 7.]]

print(matrixC)
[[7. 7.]
 [7. 7.]]

或不使用numpy (即仅使用列表):

代码语言:javascript
复制
SPLIT_SEQUENCE = '[space]'
INPUT_FILE = 'test.txt'

with open(INPUT_FILE) as f:
    matrix_data = f.read().split(SPLIT_SEQUENCE)

matrixes = {}
for d in matrix_data:
    parts = [s for s in d.split('\n') if s]
    name = parts[0].split()[0]
    matrixes[name] = []

    for i, part in enumerate(parts[1:]):
        matrixes[name].append([])
        for value in part.split():
            matrixes[name][i].append(int(value))

matrixA = matrixes['A']
matrixB = matrixes['B']
matrixC = matrixes['C']

结果:

代码语言:javascript
复制
print(matrixA)
[[1, 1, 1], [2, 2, 2], [3, 3, 3]]

print(matrixB)
[[9, 9, 9], [7, 7, 7]]

print(matrixC)
[[7, 7], [7, 7]]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73646139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档