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)
我想问你如何更改文件如下所示:
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)