【发布时间】:2015-06-10 17:07:29
【问题描述】:
我目前正在使用 Scipy 0.7.2 和 Numpy 1.4.1。我的 Python 版本是 2.6.6。我编写了一个简单的代码来从 .mtx 文件中读取 coo 稀疏矩阵,如下所示:
data = scipy.io.mmread('matrix.mtx')
在运行代码时,出现以下错误:
Traceback (most recent call last):
File "read_mat.py", line 31, in <>
data = scipy.io.mmread('matrix.mtx')
File "/usr/lib64/python2.6/site-packages/scipy/io/mmio.py", line 52, in mmread
return MMFile().read(source)
File "/usr/lib64/python2.6/site-packages/scipy/io/mmio.py", line 273, in read
return self._parse_body(stream)
File "/usr/lib64/python2.6/site-packages/scipy/io/mmio.py", line 417, in _parse_body
flat_data = flat_data.reshape(-1,3)
ValueError: total size of new array must be unchanged
我检查了一些关于 SO 的问题,发现它可能是一些特定于版本的问题,但是,根据this,它已在我的版本中修复。谁能告诉我在这里我能做什么?提前致谢!
编辑:我尝试打开一个不同的文件,它被读取了。所以,我想问题出在我的文件上。我正在粘贴以下两个文件的前几行:
打开的文件:
%%MatrixMarket matrix coordinate integer general
%
1466983 1466983 655955608
1 1 3448
1 2 824
1 3 1492
1 4 132
1 5 426
打不开的文件:
%%MatrixMarket matrix coordinate integer general
%
11162 11162 233925
1 2 1
1 3 1
1 4 1
1 16 1
1 19 1
【问题讨论】:
-
你有比那一行更多的回溯吗?
-
@Evert 我现在已经在问题中包含了整个回溯。现在问题更清楚了吗?
-
那(希望)有帮助,是的;看我的回答。完整的回溯(或至少最后和前 10-20 行)几乎总是更有帮助。
-
我很惊讶您仍在使用 Python 2.6 / numpy 1.4 和 scipy 0.7。这是一些需要稳定且不允许更新的旧机器吗?因为在某些时候,这可能会阻止您为(可能)科学工作安装其他软件包。
-
大声笑。你太棒了!是的,这是一台受限制的旧机器,我个人无法对其进行任何升级:)