簡體   English   中英

numpy數組子集錯誤

[英]numpy array subsetting error

我有一個類型的numpy稀疏矩陣A1

 scipy.sparse.dok.dok_matrix

與整數值。 我正在嘗試使用它來子集另一類型的整數矩陣A2

 numpy.matrixlib.defmatrix.matrix

通過

 A2[A1>0]

它們都具有形狀(1,10000)。 雖然很好用

 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

IndexError告訴A1 > 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]應該可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM