nonzero函数是numpy中用于得到数组array中非零元素的目录(位置)的函数。
返回值为元组,两个值分别为两个维度,包含了相应维度上非零元素的目录值。
只有a中非零元素才会有索引值,那些零值元素没有索引值
当使用布尔数组直接作为下标对象或者元祖下标对象中有布尔数组时,都相当于用nonzero()讲布尔数组转换成一组整数数组,然后使用整数数组进行下标运算。
nonzeros(a)返回数组a中值不为零的元素的下标,它的返回值是一个长度为a.ndim(数组a的轴数)的元组,元组的每个元素都是一个整数数组,其值为非零元素的下标在对应轴上的值。例如对于一维布尔数组b1,nonzero(b1)所得到的是一个长度为1的元组,它表示b1[0]和b1[2]的值不为0(False)。
b=np.array([True,False,True,False])
b
array([True,False,True,False])
np.nonzero(b)
(array([0,2],dtype=int64),)
对于一个二维数组c,nonzeero(c)所得到的是一个长度为2的元祖,它的第0个元素是数组a中值不为0的元素的第0轴的下标,第一个元素则为第1轴的下标,因此从下面的结果可知b2[0,0]、b[0,2]和b2[1,0]的值不为0:
o=np.array([[True,False,True],[True,False,False]])
c
array([[True,False,True],
[True,False,False]])
np.nonzero(c)
(array([0,0,1],dtype=int64),array([0,2,0],dtype=int64))
以上内容为大家介绍了pythonnp.nonzero()函数,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。