22

私は通常使用します

matrix[:, i:]

期待したほど速く動作しないようです。

4

2 に答える 2

20

スパース行列を出力として取得する場合、行のスライスを行う最速の方法は、csr型を指定することです。列のスライスについてcscは、こちらで詳しく説明します。どちらの場合も、現在行っていることを実行するだけです。

matrix[l1:l2,c1:c2]

出力として別のタイプが必要な場合は、より高速な方法があります。この他の回答では、マトリックスをスライスするための多くの方法とそれらの異なるタイミングの比較について説明しています。たとえば、ndarray出力として必要な場合、最速のスライスは次のとおりです。

matrix.A[l1:l2,c1:c2] 

また:

matrix.toarray()[l1:l2,c1:c2]

以下よりもはるかに高速です。

matrix[l1:l2,c1:c2].A #or .toarray()
于 2013-06-02T17:15:39.363 に答える