NumPy和SciPy -.todense()和.toarray()之间的区别

v8wbuo2f  于 2023-04-06  发布在  其他
关注(0)|答案(2)|浏览(149)

我想知道在稀疏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
tag5nh1u

tag5nh1u1#

toarray返回ndarray;todense返回一个矩阵。如果需要矩阵,请使用todense;否则,使用toarray

omjgkv6w

omjgkv6w2#

its documentation states一样,不鼓励使用numpy.matrix,因为将来可能会删除它。所以使用toarray()可能比todense()更好,特别是因为从numpy 1.10开始,在matrix对象上方便的矩阵运算现在可以在ndarray对象上使用。

相关问题