Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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
numpy数组到scipy.sparse矩阵_Numpy_Python 3.x_Scipy_Sparse Matrix - Fatal编程技术网

numpy数组到scipy.sparse矩阵

numpy数组到scipy.sparse矩阵,numpy,python-3.x,scipy,sparse-matrix,Numpy,Python 3.x,Scipy,Sparse Matrix,给定一个任意numpy数组(ndarray),是否有函数或短方法将其转换为scipy.sparse矩阵 我想要的是这样的: A = numpy.array([0,1,0],[0,0,0],[1,0,0]) S = to_sparse(A, type="csr_matrix") 我通常做类似的事情 >>> import numpy, scipy.sparse >>> A = numpy.array([[0,1,0],[0,0,0],[1,0,0]]) >

给定一个任意numpy数组(
ndarray
),是否有函数或短方法将其转换为
scipy.sparse
矩阵

我想要的是这样的:

A = numpy.array([0,1,0],[0,0,0],[1,0,0])
S = to_sparse(A, type="csr_matrix")

我通常做类似的事情

>>> import numpy, scipy.sparse
>>> A = numpy.array([[0,1,0],[0,0,0],[1,0,0]])
>>> Asp = scipy.sparse.csr_matrix(A)
>>> Asp
<3x3 sparse matrix of type '<type 'numpy.int64'>'
    with 2 stored elements in Compressed Sparse Row format>
导入numpy,scipy.sparse >>>A=numpy.array([[0,1,0],[0,0,0],[1,0,0]]) >>>Asp=scipy.sparse.csr_矩阵(A) >>>Asp
帮助中有一个非常有用和相关的示例

import scipy.sparse as sp
help(sp)
这使得:

Example 2
---------

Construct a matrix in COO format:

>>> from scipy import sparse
>>> from numpy import array
>>> I = array([0,3,1,0])
>>> J = array([0,3,1,2])
>>> V = array([4,5,7,9])
>>> A = sparse.coo_matrix((V,(I,J)),shape=(4,4))
还值得注意的是,各种构造函数(同样来自帮助):

您的示例非常简单:

S = sp.csr_matrix(A)

请参阅以下答案:


在这个回答中,我已经解释了如何将二维NumPy矩阵转换为CSR或CSC格式。

@clstaudt我不确定您要找的是什么,
sp.CSR\u矩阵(a)
将从密集的NumPy数组
a
构造一个
CSR
类型矩阵,而
sp.CSC\u矩阵(a)
将构造类型
csc
矩阵等。。。构造函数是您正在寻找的高效转换函数(尽管请阅读帮助中的注意事项)。您是对的,构造函数完成了我正在寻找的转换。我希望他们只接受与条目存储方式相对应的参数,比如:A=sparse.coo_matrix((V,(I,J)),shape=(4,4))Hm,这很简单,我应该试试看。我没想到构造函数会进行转换。这也适用于其他稀疏矩阵类型的构造函数。
S = sp.csr_matrix(A)