我有一个以下格式的文本文件,需要将其转换为python中的2D矩阵

我有一个以下格式的文本文件,需要将其转换为python中的2D矩阵,python,Python,我需要在矩阵中存储所有没有字母的数字。此外,数字之间的间距不相等,这使得转换为矩阵非常困难。这是一个pssm矩阵,如果这有帮助的话,我需要从这个矩阵计算香农熵。 矩阵的间距看起来是正确的,但这使得我很难编写正确的代码将其存储为2D矩阵。任何帮助都将不胜感激 A R N D C Q E G H I L K M F P S T W Y V 1 T -3 -4 -3 -4 -4 -3 -4 -4 -5 -3 -4 -3 -3 -5 -4 -1

我需要在矩阵中存储所有没有字母的数字。此外,数字之间的间距不相等,这使得转换为矩阵非常困难。这是一个pssm矩阵,如果这有帮助的话,我需要从这个矩阵计算香农熵。 矩阵的间距看起来是正确的,但这使得我很难编写正确的代码将其存储为2D矩阵。任何帮助都将不胜感激

       A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V
1 T   -3 -4 -3 -4 -4 -3 -4 -4 -5 -3 -4 -3 -3 -5 -4 -1  8 -5 -4 -3
2 I   -4 -5 -6 -6 -4 -5 -6 -6 -6  7  0 -5  0 -2 -5 -5 -3 -5 -4  2
3 G   -1 -4 -2 -3 -4 -4 -4  7 -4 -6 -6 -3 -5 -5 -4  2 -2 -5 -5 -5
4 M   -3 -4 -5 -6 -4 -2 -5 -6 -4  2  1 -4 10 -3 -5 -4 -2 -4 -4  0
5 V    0 -4 -5 -5 -3 -4 -4 -5 -5  5  2 -4  0 -2 -4 -3 -2 -4 -3  4
6 V    4 -4 -4 -4  3 -3 -3 -2 -4  0 -2 -3 -2 -3 -3 -1 -1 -5 -3  4
7 I   -3 -4 -5 -5 -3 -4 -5 -6 -5  6  3 -4  2 -1 -5 -4 -3 -4 -3  2
8 H   -3 -4  0  7 -6 -2 -1  1  5 -6 -6 -3 -5 -5 -4 -2 -3 -6 -4 -5
9 K    2  0 -1 -1 -3  1  1 -1 -1 -3 -2  3 -2 -3 -1  1  0 -3 -2 -1

以此类推,共有141行

在你的例子中,间距实际上是可以预测的——但我假设它不可能像你提到的那样


听起来您可以使用正则表达式的帮助。使用
\s+
意味着“一个或多个空间”,这应该适合您的需要。在正则表达式操作之前或期间,请确保删除行的开头。

先按新行拆分字符串,然后按空格拆分:

linesplit = matrix.split("\n")
grid = list()
for line in linesplit:
    grid.append(line.split(" "))
然后,如果您不希望字母沿着顶部和侧面:

del grid[0]
for line in grid:
    del line[0]
这是假设矩阵中每个数字之间有一个空格。如果没有,请首先在字符串上运行以下命令:

import re
matrix = re.sub("\s+", str(), matrix)

如果您有自己编写的试图解决此问题的代码,请提供该代码,并说明其错误之处。