Python 从矩阵到简单文本文件

Python from matrix to simple text file

我想问你如何更改文件如下所示:

 123 111 1
 146 204 2
 178 398 1
 ...
 ...

第一列是 x,第二列是 y,第三列表示每个方格中的数字。 我的矩阵是 400x400 维。我想将其更改为简单文件 M 文件并不拥有每个方块(例如 0 0 不存在,这意味着在输出文件中我希望 0 位于第一行。 我的输出文件应如下所示

 0 0 1 0 0 0 1 0 7 9 3 0 2 0 ...
 8 0 0 1 0 0 0 0 0 0 0 0 0 0 ...
 7 8 9 0 7 5 0 0 3 2 4 5 5 7 ...
 ...
 ...

如何更改我的文件? 从第一个文件我想读第二个文件。类似于 400 行的文本文件,每 400 个字符由“”(空格)分隔。

只需将矩阵初始化为零列表,然后迭代文件中的行并相应地设置矩阵中的值。不在文件中的单元格将保持不变。

matrix = [[0 for i in range(400)] for k in range(400)]
with open("filename") as data:
    for row in data:
        (x, y, n) = map(int, row.split())
        matrix[x][y] = n

最后,将该矩阵写入另一个文件:

with open("outfile", "w") as outfile:
    for row in matrix:
        outfile.write(" ".join(map(str, row)) + "\n")

您也可以使用 numpy:

matrix = numpy.zeros((4,4), dtype=numpy.int8)