我想知道在稀疏NumPy数组上使用.toarray()
与.todense()
是否有任何区别(优点/缺点)。例如,
import scipy as sp
import numpy as np
sparse_m = sp.sparse.bsr_matrix(np.array([[1,0,0,0,1], [1,0,0,0,1]]))
%timeit sparse_m.toarray()
1000 loops, best of 3: 299 µs per loop
%timeit sparse_m.todense()
1000 loops, best of 3: 305 µs per loop
2条答案
按热度按时间tag5nh1u1#
toarray
返回ndarray;todense
返回一个矩阵。如果需要矩阵,请使用todense
;否则,使用toarray
。omjgkv6w2#
与its documentation states一样,不鼓励使用
numpy.matrix
,因为将来可能会删除它。所以使用toarray()
可能比todense()
更好,特别是因为从numpy 1.10开始,在matrix
对象上方便的矩阵运算现在可以在ndarray
对象上使用。