4
在Scipy稀疏lil_matrix對象中查找最大值及其對應的行和列索引的最佳方法是什麼?我可以loop through the nonzero entries using itertools.izip,但有沒有更好的?我覺得我在這裏丟失了一些明顯的東西..在稀疏lil_matrix(Scipy/Python)中查找最大值及其索引
在Scipy稀疏lil_matrix對象中查找最大值及其對應的行和列索引的最佳方法是什麼?我可以loop through the nonzero entries using itertools.izip,但有沒有更好的?我覺得我在這裏丟失了一些明顯的東西..在稀疏lil_matrix(Scipy/Python)中查找最大值及其索引
您可以轉換爲COO格式,然後使用data
,row
和col
屬性。
例如,假設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]
注:有兩個錯誤在上面的代碼:
k = y.data.argmax()
將引發異常,因爲y.data
是一個空數組。如果這些情況不會發生在您的應用程序中,那麼這些錯誤可以被忽略。
謝謝,這正是我需要的! – x112341
這爲我節省了很多時間。謝謝! – mab