numpy where

 

>>> import numpy as np
>>> x = np.arange(9.).reshape(3, 3)
>>> x
array([[ 0.,  1.,  2.],
       [ 3.,  4.,  5.],
       [ 6.,  7.,  8.]])
>>> np.where( x > 5 )
(array([2, 2, 2]), array([0, 1, 2]))       第一个array返回的是第一维的坐标,第二个aray返回的是第二维的坐标。一二维的坐标结合,你就会发现就是6,7,8这三个数 
>>> x[np.where( x > 5 )]
array([ 6.,  7.,  8.])

 可以看到,where返回的都是坐标,要注意where对于一维array的返回

>>> a = np.array([1,2,3,4,5,6])
>>> b = np.where(a>3)
>>> b
(array([3, 4, 5]),)
>>> b[0]
array([3, 4, 5])
>>> a = np.array([1,3,5,6,7,8])
>>> b = np.where(a>2)
>>> b
(array([1, 2, 3, 4, 5]),)

 

posted @ 2017-06-19 21:37  有梦就要去实现他  阅读(380)  评论(0编辑  收藏  举报