Numpy where数组查询
在查询数组的过程中,最常用到的是 where 方法,该方法返回的是符合条件的值的坐标。另外,还可以通过 argmax 与 argmin 方法获得数组中最大值和最小值的坐标,注意 axis 参数的设定。示例代码如下。
这里需要注意的是,返回的形式是将所有元素的横坐标放在一个数组里,然后将所有元素的纵坐标放在另一个数组里。这种做法的好处是方便以后取值。
In [1]: import numpy as np In [2]: a = np.array([[1,2,3,4], ...: [5,6,7,8], ...: [9,10,11,12], ...: [13,14,15,16]])where 方法用来返回符合条件的坐标,比如我们想要获得大于 7 的所有值的坐标,可以看出 8 是第一个比 7 大的数字,所以数字 8 的坐标 [1,3] 会被返回,同样的道理, 9 的坐标 [2,0] 也会被返回。
这里需要注意的是,返回的形式是将所有元素的横坐标放在一个数组里,然后将所有元素的纵坐标放在另一个数组里。这种做法的好处是方便以后取值。
In [3]: index=np.where(a > 7) In [4]: index Out[4]: (array([1, 2, 2, 2, 2, 3, 3, 3, 3], dtype=int64), array([3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64))可以直接将上述结果用索引方法索引出来。
In [5]: a[index] Out[5]: array([ 8, 9, 10, 11, 12, 13, 14, 15, 16])