關(guān)于numpy中np.nonzero()函數(shù)用法的詳解
np.nonzero函數(shù)是numpy中用于得到數(shù)組array中非零元素的位置(數(shù)組索引)的函數(shù)。一般來(lái)說(shuō),通過help(np.nonzero)能夠查看到該函數(shù)的解析與例程。但是,由于例程為英文縮寫,閱讀起來(lái)還是很費(fèi)勁,因此,本文將其英文解釋翻譯成中文,便于理解。
解釋
nonzero(a)
返回?cái)?shù)組a中非零元素的索引值數(shù)組。
(1)只有a中非零元素才會(huì)有索引值,那些零值元素沒有索引值;
(2)返回的索引值數(shù)組是一個(gè)2維tuple數(shù)組,該tuple數(shù)組中包含一維的array數(shù)組。其中,一維array向量的個(gè)數(shù)與a的維數(shù)是一致的。
(3)索引值數(shù)組的每一個(gè)array均是從一個(gè)維度上來(lái)描述其索引值。比如,如果a是一個(gè)二維數(shù)組,則索引值數(shù)組有兩個(gè)array,第一個(gè)array從行維度來(lái)描述索引值;第二個(gè)array從列維度來(lái)描述索引值。
(4) 該np.transpose(np.nonzero(x))
函數(shù)能夠描述出每一個(gè)非零元素在不同維度的索引值。
(5)通過a[nonzero(a)]得到所有a中的非零值
#a是1維數(shù)組
a = [0,2,3]
b = np.nonzero(a)
print(np.array(b).ndim)
print(b)
結(jié)果:
2
(array([1, 2], dtype=int64),)
說(shuō)明:索引1和索引2的位置上元素的值非零。
#a是2維數(shù)組
a = np.array([[0,0,3],[0,0,0],[0,0,9]])
b = np.nonzero(a)
print(np.array(b).ndim)
print(b)
print(np.transpose(np.nonzero(a)))
結(jié)果:
2
(array([0, 2], dtype=int64), array([2, 2], dtype=int64))
[[0 2]
[2 2]]
說(shuō)明:
(1)a中有2個(gè)非零元素,因此,索引值tuple中array的長(zhǎng)度為2。因?yàn)椋挥蟹橇阍夭庞兴饕怠?/p>
(2)索引值數(shù)組是2 維的。實(shí)際上,無(wú)論a的維度是多少,索引值數(shù)組一定是2維的tuple,但是tuple中的一維array個(gè)數(shù)和a的維數(shù)一致。
(3)第1個(gè)array([0, 2])是從row值上對(duì)3和9進(jìn)行的描述。第2個(gè)array([2, 2])是從col值上對(duì)3和9的描述。這樣,從行和列上兩個(gè)維度上各用一個(gè)數(shù)組來(lái)描述非零索引值。
(4)通過調(diào)用np.transpose()函數(shù),得出3的索引值是[0 2],即第0行,第2列。
#a是3維數(shù)組
a = np.array([[[0,0],[1,0]],[[0,0],[1,0]],[[0,0],[1,0]]])
b = np.nonzero(a)
print(np.array(b).ndim)
print(b)
結(jié)果:
2
(array([0, 1, 2], dtype=int64), array([1, 1, 1], dtype=int64), array([0, 0, 0], dtype=int64))
說(shuō)明:由于a是3維數(shù)組,因此,索引值數(shù)組有3個(gè)一維數(shù)組。
注:數(shù)組索引值從0開始。
以上這篇關(guān)于numpy中np.nonzero()函數(shù)用法的詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python OpenCV 針對(duì)圖像細(xì)節(jié)的不同操作技巧
這篇文章主要介紹了Python OpenCV 針對(duì)圖像細(xì)節(jié)的不同操作,包括圖像像素的說(shuō)明,圖像屬性信息的獲取與修改以及圖像通道的知識(shí)(包括拆分通道和合并通道),需要的朋友可以參考下2021-08-08
關(guān)于Python排序sort()函數(shù)和sorted()函數(shù)
這篇文章主要介紹了關(guān)于Python排序sort()函數(shù)和sorted()函數(shù),利用Python中的內(nèi)置函數(shù)去實(shí)現(xiàn)直接排序,需要的朋友可以參考下2023-04-04
對(duì)Python Pexpect 模塊的使用說(shuō)明詳解
今天小編就為大家分享一篇對(duì)Python Pexpect 模塊的使用說(shuō)明詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-02-02
pytest?用例執(zhí)行失敗后其他不再執(zhí)行
本文主要介紹了pytest?用例執(zhí)行失敗后其他不再執(zhí)行,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
python使用opencv在Windows下調(diào)用攝像頭實(shí)現(xiàn)解析
這篇文章主要介紹了python使用opencv在Windows下調(diào)用攝像頭實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
python的簡(jiǎn)單四則運(yùn)算語(yǔ)法樹可視化
這篇文章主要介紹了python的簡(jiǎn)單四則運(yùn)算語(yǔ)法樹可視化,這篇文章的內(nèi)容也很簡(jiǎn)單,就是給定一個(gè)四則運(yùn)算的表達(dá)式,畫出它的語(yǔ)法樹,需要的朋友可以參考下2023-04-04

