2017-10-30 21 views
0

Iは、整数値でnumpyのスパースマトリックスタイプnumpyのアレイのサブセットのエラー

scipy.sparse.dok.dok_matrix 

のA1を有しています。私はそれらの両方が形状(1,10000)を持っている

A2[A1>0] 

によってタイプ

numpy.matrixlib.defmatrix.matrix 

の別の整数行列A2をサブセットするためにそれを使用しようとしています。それは

A1[A1>0] 

を使用するために適切に機能しますが、私は次のエラーを取得する:

>> A2[A1>0] 

Traceback (most recent call last): 

File "<ipython-input-250-19959d659dc5>", line 1, in <module> 
    edge_counts[nodes>0] 

File "//anaconda/lib/python2.7/site-packages/numpy/matrixlib/defmatrix.py", line 284, in __getitem__ 
out = N.ndarray.__getitem__(self, index) 

IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices 

答えて

1

IndexErrorA1 > 0は、インデックスとの互換性対象ではないことを語っています。 あなたはで簡単に調べることができます:

In []: type(A1 > 0) 
Out[]: scipy.sparse.csr.csr_matrix 

そして、あなたはtoarray()を使用して、最初の配列にA1を変換することによりbool配列に変えることができます:

In []: type(A1.toarray() > 0) 
Out[]: numpy.ndarray 

その後A2[A1.toarray() > 0]がうまく動作するはずです。

関連する問題