Python 确定scipy稀疏矩阵的类型
假设我需要进行计算Python 确定scipy稀疏矩阵的类型,python,numpy,scipy,Python,Numpy,Scipy,假设我需要进行计算 A.dot(B).dot(A.T) A.dot(x) 其中A和B都是scipy.sparse矩阵,x是密集np.array。我应该如何决定用于A和B的稀疏矩阵的类型?我知道csc_矩阵更适合于列操作,而csr_矩阵更适合于行操作,因此我似乎应该对A使用csr_矩阵,但我不确定如何处理B,因为我需要同时执行行和列操作。我应该把它存储为coo\u matrix吗?我认为这不重要,尤其是当矩阵乘法是主要操作时。csr的转置是csc(试试看属性)coo主要是一种输入格式。任何数学运
A.dot(B).dot(A.T)
A.dot(x)
其中
A
和B
都是scipy.sparse
矩阵,x
是密集np.array
。我应该如何决定用于A
和B
的稀疏矩阵的类型?我知道csc_矩阵
更适合于列操作,而csr_矩阵
更适合于行操作,因此我似乎应该对A
使用csr_矩阵
,但我不确定如何处理B
,因为我需要同时执行行和列操作。我应该把它存储为coo\u matrix
吗?我认为这不重要,尤其是当矩阵乘法是主要操作时。csr
的转置是csc
(试试看属性)coo
主要是一种输入格式。任何数学运算都需要转换为压缩格式,通常是自动转换。由于行多列少,因此csc
intptr
更小。相反地,对于csr来说,最好自己做一些时间测试。最新的scipy版本讨论了一些速度改进,这些改进可能会影响处理,也可能不会影响处理