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

问题描述 投票:0回答:2

我想知道在稀疏 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
python arrays numpy scipy sparse-matrix
2个回答
50
投票

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


0
投票

正如其文档所述,不鼓励使用

numpy.matrix
,因为它可能在将来被删除。因此,使用
toarray()
而不是
todense()
可能更好,特别是因为自 numpy 1.10 以来,在
matrix
对象上方便的矩阵运算现在可以在
ndarray
对象上实现。

© www.soinside.com 2019 - 2024. All rights reserved.