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

41

我想知道在稀疏的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个回答

52

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


0

正如文档所述,不建议使用numpy.matrix,因为它可能会在未来被删除。因此,最好使用toarray()而不是todense(),特别是自从numpy 1.10以来,方便在matrix对象上进行的矩阵操作现在也可以在ndarray对象上进行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接