nonzero函數(shù)是numpy中用于得到數(shù)組array中非零元素的目錄(位置)的函數(shù)。
返回值為元組,兩個值分別為兩個維度,包含了相應(yīng)維度上非零元素的目錄值。
只有a中非零元素才會有索引值,那些零值元素沒有索引值
當(dāng)使用布爾數(shù)組直接作為下標(biāo)對象或者元祖下標(biāo)對象中有布爾數(shù)組時,都相當(dāng)于用nonzero()講布爾數(shù)組轉(zhuǎn)換成一組整數(shù)數(shù)組,然后使用整數(shù)數(shù)組進(jìn)行下標(biāo)運(yùn)算。
nonzeros(a)返回?cái)?shù)組a中值不為零的元素的下標(biāo),它的返回值是一個長度為a.ndim(數(shù)組a的軸數(shù))的元組,元組的每個元素都是一個整數(shù)數(shù)組,其值為非零元素的下標(biāo)在對應(yīng)軸上的值。例如對于一維布爾數(shù)組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),)
對于一個二維數(shù)組c,nonzeero(c)所得到的是一個長度為2的元祖,它的第0個元素是數(shù)組a中值不為0的元素的第0軸的下標(biāo),第一個元素則為第1軸的下標(biāo),因此從下面的結(jié)果可知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))
以上內(nèi)容為大家介紹了pythonnp.nonzero()函數(shù),希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。