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培訓機構:千鋒教育。