【问题标题】:Trying to import a matrix as a 2D array [duplicate]尝试将矩阵作为二维数组导入 [重复]
【发布时间】:2023-09-22 11:45:01
【问题描述】:

我希望阅读这篇文章的人今天过得愉快。 我正在尝试从排列为二维数组中的行和列的文件中读取矩阵,使得第一行中的 X1 在 python 中的条目 [0,0] 中。

输入文件如下所示:

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15

每当我尝试读回数组时,它只是第一行中的一列数据:

with open(filename, 'r') as inputfile:
for line in inputfile:
    loadedMatrix = inputfile.read()

当然,这会返回一个错误,即混合迭代和读取方法会搞砸。但是,正如我所说,当我在没有 for 循环的情况下执行此操作时,我只会得到第一行。也许其他人可以指出我正确的方向?我也避免使用 numpy,因为我希望程序通过基本的 python 安装运行开箱即用。

【问题讨论】:

  • 你想将它加载到嵌套的 Python 列表中还是加载到 NumPy 数组之类的东西中?对于第二种情况,您有np.loadtxt。对于第一种情况,类似于[list(map(int, line.split())) for line in inputfile]

标签: python arrays


【解决方案1】:

这很好用 -

with open('untitled.txt', 'r') as inputfile:
    loadedMatrix = [line.strip().split() for line in inputfile]

或者如果你想要整数

loadedMatrix = [list(map(int, line.strip().split())) for line in inputfile]
  • 您忘记了缩进。
  • inputfile.read() 一次读取整个文件。因此,在循环中,您正在读取第一行并将其存储在变量“line”中,文件的其余部分作为字符串提供给“loadedMatrix”

【讨论】: