如何使用函数编写一个从mtx文件读取矩阵的脚本西皮·欧·姆雷德?

2024-06-25 23:05:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我收到了一份文件矩阵.mtx),打开时如下所示:

%%MatrixMarket matrix coordinate real symmetric  
132 132 1890  
1 1  1.9960268182200e+03  
2 1  5.6751562001600e+02  
3 1  7.7541907594400e+02  
6 1 -8.0165406828800e+02  
7 1 -1.3864718750000e+03  
13 1 -1.2338727484800e+00  
18 1 -5.9225891927100e+02  
19 1 -4.9040995231500e+02  
20 1 -4.8997371242200e+02  

。。。以此类推

我需要写一个脚本从文件中读取矩阵矩阵.mtx使用函数scipy.io.mmread. 此函数将以稀疏格式存储矩阵。它说矩阵是以矩阵市场格式存储的。我很难让它工作,任何帮助将不胜感激。在


Tags: 文件函数io脚本coordinate市场格式矩阵
1条回答
网友
1楼 · 发布于 2024-06-25 23:05:59

使用下面同样存储在matrix.mtx中的更简单的矩阵

%%MatrixMarket matrix coordinate real symmetric
3 3 6
1 1  1.9960268182200e+03
2 1  5.6751562001600e+02
3 1  7.7541907594400e+02
2 2 -8.0165406828800e+02
3 2 -1.3864718750000e+03
3 3 -5.9225891927100e+02

下面将文件读入稀疏矩阵

^{pr2}$

然后我们可以把它转化成一个稠密的矩阵

In [4]: a.todense()
Out[4]:
matrix([[ 1996.02681822,   567.51562002,   775.41907594],
        [  567.51562002,  -801.65406829, -1386.471875  ],
        [  775.41907594, -1386.471875  ,  -592.25891927]])

或者一个数组

In [5]: a.toarray()
Out[5]:
array([[ 1996.02681822,   567.51562002,   775.41907594],
       [  567.51562002,  -801.65406829, -1386.471875  ],
       [  775.41907594, -1386.471875  ,  -592.25891927]])

相关问题 更多 >