python - 从 .txt 文件导入矩阵

标签 python matrix

对Python非常陌生。假设我有一个包含矩阵的 txt 文件。

matrix.txt

A A A B B C
D D C D A E
A D S A W A

现在我想将这个矩阵导入到我的Python程序中,以便我可以处理数据。 现在的问题是我应该如何附加矩阵的每一行?

我尝试过的:

file_object = open('matrix.txt', 'r')
try:
   line = file_object.readline()
   while line:
       print line
       line = file_object.readline()
       line = line.strip()
       string = []
       string.append(line)
       print string
finally:
   file_object.close()
print string[0][1]

编辑:特殊情况:

A A A B B C           A A A B B C
  D C D A E   --->    0 D C D A E
  D   A W A           0 D 0 A W A

如果某些元素为零,我如何用 0 替换它们?

最佳答案

带有解释的详尽代码:

#define a separator which divides your elements
sep = ' '
matrix = []
with open('matrix.txt', 'r') as f:
    for line in f:
        # generate an array with the elements which are on the line
        line_array = line.split(sep)

        #append it to the matrix
        matrix.append(line_array)

print matrix

为了更好地理解“with”语句,请阅读this ,这对我有帮助。

编辑: 为了将双分隔符匹配为 nil (None) 对象,请将 line_array 关联替换为:

line_array = [e or 0 for e in line.split(sep)]

示例数据集(注意 B 和 C 之间的双空格):

A A A B  C
D D C D A E
A D S A W A

编辑2: 对于独立于平台的行结尾,请使用:

line_array = [e or 0 for e in line.splitlines()[0].split(sep)]

关于python - 从 .txt 文件导入矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29775539/

相关文章:

尽管存在 Mac,Python pandas read_csv 返回 FileNotFoundError

r - 计算两个相邻数字之间的最大和最小差异

python - 关于矩阵的 tensorflow 梯度

matrix - 在未排序矩阵中搜索的时间复杂度是线性的?

python - 如何将十六进制字符串 'o\xf2\x00\x00' 转换为 int32?

python - 如何将小部件放入 PyQt QMdiSubWindow 中

python - 如何进行无限线程评论

algorithm - 将网格转换为加权邻接列表

c - 如何返回矩阵?

python - 在 IPython 中清除屏幕