1

SciPy v0.11リファレンスガイドを除いて、scipy.sparseインデックスに関する詳細情報を見つけることができません。

lil_matrixクラスは、NumPy配列と同様の構文で、基本的なスライシングとファンシーインデックスをサポートします。
。インデックスに関するnumpyのドキュメントを読んだことがありますが、たとえば、はっきりと理解できませんでした。

Asp = sparse.lil_matrix((3,3))
Asp.setdiag(zeros(3))
Asp[0, 1:3] = 10
print Asp.todense()

1.出力が

[[0. 10. 10.]
 [0. 0. 0.]
 [0. 0. 0.]]

[0,1:3]はどういう意味ですか?使用する場合

Asp[0, 1:2,3] = 10

エラーがあります:

IndexError:無効なインデックス
、理由はわかりません。

2.各行のすべてのゼロ以外の値を取得する最も速い方法は何ですか?

4

2 に答える 2

4

2番目の質問には、このnonzero()方法を使用します。参照ドキュメントのいずれにも見つからなかったため、ソースを調べて見つける必要がありました。

def nonzero(self):
    """nonzero indices

    Returns a tuple of arrays (row,col) containing the indices
    of the non-zero elements of the matrix.

    Examples
    --------
    >>> from scipy.sparse import csr_matrix
    >>> A = csr_matrix([[1,2,0],[0,0,3],[4,0,5]])
    >>> A.nonzero()
    (array([0, 0, 1, 2, 2]), array([0, 1, 2, 0, 2]))

    """
于 2013-01-17T04:28:35.680 に答える
2

どういう[0,1:3]意味ですか?

つまり、行0、要素1から3(排他的)まで。NumpyとScipyはゼロベースのインデックスを使用するため、行0は最初の行であり1:3、1番目と2番目の列を示します。

Asp[0, 1:2,3]、、、の3つのインデックスがあるため、は無効0です。行列には2つの軸しかありません。1:23

これはすべて標準のNumpyのものです。そのパッケージに関する優れたチュートリアルを読んでください。

于 2013-01-16T18:02:21.440 に答える