Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 确定scipy稀疏矩阵的类型_Python_Numpy_Scipy - Fatal编程技术网

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版本讨论了一些速度改进,这些改进可能会影响处理,也可能不会影响处理