【发布时间】:2016-07-23 00:15:51
【问题描述】:
我在 scipy.sparse.csr_matrix 中发现了一个意外行为,这对我来说似乎是一个错误。谁能确认这不正常?我不是稀疏结构方面的专家,所以我可能会误解正确的用法。
>>> import scipy.sparse
>>> a=scipy.sparse.csr_matrix((1,1))
>>> b=scipy.sparse.csr_matrix((1,1))
>>> b[0,0]=1
/home/marco/anaconda3/envs/py35/lib/python3.5/site-packages/scipy/sparse/compressed.py:730: SparseEfficiencyWarning: Changing the sparsity structure of a csr_matrix is expensive. lil_matrix is more efficient.
SparseEfficiencyWarning)
>>> a/b
matrix([[ nan]])
另一方面,numpy 可以正确处理这个问题:
>>> import numpy as np
>>> a=np.zeros((1,1))
>>> b=np.ones((1,1))
>>> a/b
array([[ 0.]])
谢谢
【问题讨论】:
-
你试过
(a/b).toarray()吗? -
在我看来是个错误。
-
(a/b).tolist()返回[[nan]]。a/b是矩阵类型,所以没有toarray或todense。
标签: python numpy scipy sparse-matrix