我有一个以下格式的文本文件,需要将其转换为python中的2D矩阵
我需要在矩阵中存储所有没有字母的数字。此外,数字之间的间距不相等,这使得转换为矩阵非常困难。这是一个pssm矩阵,如果这有帮助的话,我需要从这个矩阵计算香农熵。 矩阵的间距看起来是正确的,但这使得我很难编写正确的代码将其存储为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
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)
如果您有自己编写的试图解决此问题的代码,请提供该代码,并说明其错误之处。