7

任意のnumpy配列( )が与えられた場合、それを行列 ndarrayに変換する関数または簡単な方法はありますか?scipy.sparse

次のように機能するものが欲しいのですが。

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

3 に答える 3

8

私は通常次のようなことをします

>>> 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>
于 2012-05-21T14:18:26.580 に答える
3

非常に便利で適切な例がヘルプにあります!

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))

また、さまざまなコンストラクターが(ここでもヘルプから)あることに注意する価値があります。

    1. csc_matrix: Compressed Sparse Column format
    2. csr_matrix: Compressed Sparse Row format
    3. bsr_matrix: Block Sparse Row format
    4. lil_matrix: List of Lists format
    5. dok_matrix: Dictionary of Keys format
    6. coo_matrix: COOrdinate format (aka IJV, triplet format)
    7. dia_matrix: DIAgonal format

To construct a matrix efficiently, use either lil_matrix (recommended) or
dok_matrix. The lil_matrix class supports basic slicing and fancy
indexing with a similar syntax to NumPy arrays.  

あなたの例は次のように単純です:

S = sp.csr_matrix(A)
于 2012-05-21T14:20:04.903 に答える
0

この回答を参照してください:https ://stackoverflow.com/a/65017153/9979257

この回答では、2次元のNumPyマトリックスをCSRまたはCSC形式に変換する方法を説明しました。

于 2020-11-26T06:44:10.420 に答える