2017-05-09 82 views
0

我正在使用skmultilearn.adapt庫中的mlnn來處理我的一個分類問題。預測函數給出的輸出是int類型的稀疏矩陣。如何在Python中迭代類型爲int的稀疏矩陣

mlk=mlknn.MLkNN(k=10) 
mlk.fit(training_M,Y_train) 
output=mlk.predict(testing_M) 

當我嘗試打印輸出像 print(output)

它顯示我只有1個輸出,即

(0, 1120) 1 

但我需要閱讀完整的矩陣,並找到非零值。

,如果我做

output[2][4] 

它顯示我Row Index out of bound erro

我如何避免這個錯誤,並得到所有非零值的行和列的索引?

回答

0

此印刷品是一種壓縮形式,意味着該矩陣中只有一個非零值,否則會有更多的輸出。

您可以通過致電output.nnz進行仔細檢查。 (屬性,而不是函數)

如果你有足夠的內存,你可以使用output.todense()來獲得經典的非稀疏numpy數組。

否則查閱文檔以瞭解如何更有效地使用這些文檔。

scipy sparse docs

:你的榜樣output[2][4]表明,你是新來與NumPy/SciPy的,我強烈建議通過他們的文檔去。索引2d陣列/矩陣完成,如output[2,4]