使用读取mtx文件scipy.io.mmread不起作用

2024-09-28 05:27:33 发布

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

我有几个大的.mtx(范围从2-12gb)试图加载到Python中的稀疏矩阵中,但它不起作用。我自己在同一台机器上生成的文件没有错误,所以我完全困惑于此。在

获取有关文件的信息工作正常:

from scipy.io import mminfo,mmread
mminfo(filename)
>>> (8649029, 181, 110656308, 'coordinate', 'real', 'general')

但如果我试图将文件加载到内存中:

^{pr2}$

它只是挂着。在等待了一个小时后,我试图中断内核(这是在Windows7机器上的IPython笔记本上),但这也会挂起,我不得不关闭笔记本才能停止。我在命令行中重复了它,得到了类似的结果。这次我可以用ctrl-c中断,但是遇到了一些我以前从未见过的系统错误(没有Python异常):

forrtl: error (200): program aborting due to control-C event
Image              PC                Routine            Line        Source
kernel32.dll       0000000076CC4803  Unknown               Unknown  Unknown
kernel32.dll       0000000076C8652D  Unknown               Unknown  Unknown
ntdll.dll          0000000076EBC541  Unknown               Unknown  Unknown

我甚至尝试通过Python解释器在Mac上加载相同的文件。这太挂了,如果不关闭终端会话,就无法中断。在

你知道这里会发生什么吗??在


Tags: 文件fromioimport机器信息错误笔记本
1条回答
网友
1楼 · 发布于 2024-09-28 05:27:33

我看到过类似的大文件在scipy中的I/o要花很长时间。当时,我考虑将它们写为二进制而不是ASCII MTX格式,这将减少所需的I/O量。请参阅Scipy I/O Cookbook,特别是标题为“用元数据将Fortran或C数组写入二进制文件”一节。libpny将需要链接到中。在

相关问题 更多 >

    热门问题