2014-07-19 80 views

回答

6

您可以轉換爲COO格式,然後使用data,rowcol屬性。

例如,假設LIL矩陣是x。下面是與它的行和列相處的最大值的一種方法:

In [41]: x 
Out[41]: 
<1000x1000 sparse matrix of type '<type 'numpy.float64'>' 
    with 1999 stored elements in LInked List format> 

In [42]: y = x.tocoo() 

In [43]: k = y.data.argmax() 

In [44]: maxval = y.data[k] 

In [45]: maxrow = y.row[k] 

In [46]: maxcol = y.col[k] 

注:有兩個錯誤在上面的代碼:

  • 如果所有非零值是負的,它會發現最大的負值。但在這種情況下,正確的答案應該是0。
  • 如果有非零值,則行k = y.data.argmax()將引發異常,因爲y.data是一個空數組。

如果這些情況不會發生在您的應用程序中,那麼這些錯誤可以被忽略。

+0

謝謝,這正是我需要的! – x112341

+0

這爲我節省了很多時間。謝謝! – mab