如何在Python

时间:2017-05-09 01:25:01

标签: python

我正在使用skmultilearn.adapt库中的mlnn来解决我的一个分类问题。预测函数给出的输出是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

如何避免此错误并获取所有非零值的行和列索引?

1 个答案:

答案 0 :(得分:0)

此打印是一种浓缩形式,表示该矩阵中只有一个非零值,否则会有更多输出。

您可以通过拨打output.nnz来仔细检查。 (属性,不是功能)

如果你有足够的内存,你可以使用output.todense()来获得经典的非稀疏numpy数组。

否则,请查阅文档以了解如何更有效地使用这些文档。

scipy sparse docs

备注:您的示例output[2][4]表明您是numpy / scipy的新手,我强烈建议您浏览他们的文档。索引2d-数组/矩阵就像output[2,4]

一样