如何在scipy中处理这个AttributeError?这很奇怪

时间:2017-03-31 22:19:56

标签: python error-handling

此代码仅来自SciPy.org

import numpy as np
import scipy.sparse

sparse_matrix = scipy.sparse.csc_matrix(np.array([[0, 0, 3], [4, 0, 0]]))
scipy.sparse.save_npz('/tmp/sparse_matrix.npz', sparse_matrix)

但是当我运行它时,它会显示:AttributeError:module' scipy.sparse'没有属性' save_npz'

如果我这样做:

import numpy as np
import scipy.sparse.save_npz
import scipy.sparse

sparse_matrix = scipy.sparse.csc_matrix(np.array([[0, 0, 3], [4, 0, 0]]))
scipy.sparse.save_npz('/tmp/sparse_matrix.npz', sparse_matrix)

它显示:ModuleNotFoundError:没有名为' scipy.sparse.save_npz'

的模块

如果我这样做:

import numpy as np
from scipy.sparse import csr_matrix, save_npz

sparse_matrix = csc_matrix(np.array([[0, 0, 3], [4, 0, 0]]))
save_npz('/tmp/sparse_matrix.npz', sparse_matrix)

它显示:ImportError:无法导入名称' save_npz'

那么,如何修复呢?

1 个答案:

答案 0 :(得分:1)

检查scipy.__version__,您会看到该版本是< 0.19,实现save_npz方法的第一个版本。

您需要在shell提示符下运行pip install --upgrade scipy

如果您正在使用iPython或Jupyter,则需要重新启动内核才能使更改生效。