python nonzero 函式的使用

2021-09-29 09:12:40 字數 1973 閱讀 8672

numpy.nonzero函式是numpy中用於得到陣列array中非零元素的位置(陣列索引)的函式.

numpy.nonzero()函式是numpy中用於得到陣列array中非零元素的位置(陣列索引)的函式,很適合用來對資料下標的提取。著重需要強調的是nonzero函式中不僅可以放數值矩陣/行列,同樣可以放布林型(true、false)矩陣/行列,由於這個特性其適用範圍更加的廣泛和優秀,下面做乙個簡單的介紹和資料的實踐。

返回陣列a中非零元素的索引值陣列。

(1)只有a中非零元素才會有索引值,那些零值元素沒有索引值;

(2)返回的索引值陣列是乙個2維tuple陣列,該tuple陣列中包含一維的array陣列。其中,一維array向量的個數與a的維數是一致的。

(3)索引值陣列的每乙個array均是從乙個維度上來描述其索引值。比如,如果a是乙個二維陣列,則索引值陣列有兩個array,第乙個array從行維度來描述索引值;第二個array從列維度來描述索引值。

(4) 該np.transpose(np.nonzero(x))

函式能夠描述出每乙個非零元素在不同維度的索引值。

(5)通過a[nonzero(a)]得到所有a中的非零值

import numpy as npa=[

1,0,

2]b=np.nonzero(a)

# 尋找一維陣列中不為零的元素位置

print

(b)輸出結果:(array([0

,2], dtype=int64),)

a4=np.mat([1

,0,5

,2])

print

(a4.nonzero()[

0])# 輸出一維陣列元素內非零元素所在行數,並形成陣列表示

輸出結果:[00

0]print

(a4.nonzero()[

1])# 輸出一維陣列元素內非零元素所在列數,並形成陣列表示

輸出結果:[02

3]

可以看出a[0],a[2]索引處元素是非零元素。

import numpy as npa=[

[0],

[1],

[2]]

b=np.nonzero(a)

print

(b)輸出結果: (array([1

,2], dtype=int64)

, array([0

,0], dtype=int64)

)

這裡我們可以看出,array([1, 2], dtype=int64)是第乙個array表示非零元素所在的第1,2行。array([0, 0], dtype=int64)第二個array表示非零元素所在的第0,0列,分別取對應位置的值組成非零元素的座標。

import numpy as np

a=np.mat([[

0],[

4],[

5]])

print

(a.nonzero()[

0])# 尋找不為零元素所在行數,並形成陣列表示

輸出結果:[12

]print

(a.nonzero()[

0][0

])# 行數陣列位置0數值

輸出結果:1

print

(a.nonzero()[

0][1

])# 行數陣列位置1數值

輸出結果:2

print

(a.nonzero()[

1])# 尋找不為零元素所在列數,並形成陣列表示

輸出結果:[00

]print

(a.nonzero()[

1][0

])# 列數陣列位置0數值

輸出結果:0

print

(a.nonzero()[

1][1

])# 列數陣列位置1數值

輸出結果:0

函式基礎 匿名函式,函式,箭頭函式,立即執行函式

doctype html html lang en head meta charset utf 8 meta name viewport content width device width,initial scale 1.0 title document title head body body ...

函式 常見函式

def fib n if n 1 return 1if n 2 return 1return fib n 1 fib n 2 def hannuo n,a,b,c n 表示有n個盤子 a 代表第乙個塔,開始的塔 b 代表第二個塔,過渡塔 c 代表第三個塔,目標塔 d.在 中n 2,這個分支可以不要,...

Lua 函式 函式

在lua中,函式是一種對語句和表示式進行抽象的主要機制。函式既可以完成某項特定的任務,也可以只做一些計算並返回結果。lua具有一項非常於總不同的特徵,允許函式返回多個結果 s,e string.find hello lua users lua print s,e 7 9 以lua編寫的函式同樣可以返...