numpy.nonzero
的功能是返回数组中所有非零元素的索引,比如在聚类分析中有这么一段更新质心位置的代码,cluster是每一行数组所属质心的索引,质心一共有k个,如何分别得到每个质心下的全部索引呢?一行nonzero(index == cent)
就可以轻松解决问题。
1 | # 更新质心的位置,直到簇分配结果不再改变为止 |
举个例子加深理解
1 | 3) x = np.eye( |
当然也可以使用numpy.nonzero
直接获取数组中的所有非零元素值
1 | # 返回x中所有的非零元素 |
不仅仅是快速查找数组内的非零元素,numpy.nonzero
还可以用来返回特定条件下的元素索引。比如给定一个数组a,查找数组a中符合大于3条件的元素,使用numpy.nonzero
则会返回所有符合条件的元素索引。
1 | 1,2,3],[4,5,6],[7,8,9]]) a = np.array([[ |
也可以这样用
1 | 3).nonzero() (a > |