Skip to content

numpy.nonzero()

nonzero()返回矩阵或数组元素中不是False和0的索引,返回的第一个array描述行,第二个array描述列

import numpy as np 

matrix = np.mat([[1,0,2],[0,3,0],[0,0,0],[1,5,1]])
print(matrix)
#将矩阵转化为numpy中的数组
print(matrix.A)   
#提取第一列
print(matrix[:,0])   
#返回第一列非零元素索引
print(np.nonzero(matrix[:,0]==1))

# 提取出第一个数值为1的全部行
print(matrix[np.nonzero(matrix[:,0]==1)[0]])
[[1 0 2] 
 [0 3 0] 
 [0 0 0] 
 [1 5 1]]

[[1 0 2] 
 [0 3 0] 
 [0 0 0] 
 [1 5 1]]

[[1]     
 [0]
 [0]
 [1]]

(array([0, 3], dtype=int64), array([0, 0], dtype=int64))

[[1 0 2]
 [1 5 1]]