numpy nonzero與isnan


nonzero

直接看例子:

In [83]: x = np.array([[1,0,0], [0,2,0], [1,1,0]])

In [84]: x.shape
Out[84]: (3L, 3L)
# 3*3的array,維度為2

In [85]: x
Out[85]:
array([[1, 0, 0],
       [0, 2, 0],
       [1, 1, 0]])

In [86]: np.nonzero(x)
Out[86]: (array([0, 1, 2, 2], dtype=int64), array([0, 1, 0, 1], dtype=int64))
# 返回的是x中的不為0的元素坐標(坐標從每個array中選一個組成)
# 返回的tuple與x的維度相同,tuple中第一個元素選一個,第二個元素選對應的那個,形成了一個坐標: # x[0,0], x[1,1], x[2,0], x[2,1] 這幾個為非零
In [87]: x = x == 0

In [88]: x
Out[88]:
array([[False,  True,  True],
       [ True, False,  True],
       [False, False,  True]], dtype=bool)


In [89]: np.nonzero(x)
Out[89]: (array([0, 0, 1, 1, 2], dtype=int64), array([1, 2, 0, 2, 2], dtype=int64))
# 看第一個元素x[0,1]是True,意味着false在這個函數這為0

 

isnan:

In [90]: y = [np.log(-1.),1.,np.log(0)]
E:\Anaconda2\Scripts\ipython-script.py:1: RuntimeWarning: invalid value encountered in log
  if __name__ == '__main__':
E:\Anaconda2\Scripts\ipython-script.py:1: RuntimeWarning: divide by zero encountered in log
  if __name__ == '__main__':

In [91]: y
Out[91]: [nan, 1.0, -inf]

In [92]: np.isnan(y)
Out[92]: array([ True, False, False], dtype=bool)
# 可以看到isnan返回的是數組對應的相同大小的布爾型數組

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM