numpy.where(condition[,x,y])
返回元素,可以是x或y,具体取决于条件(condition)
当数组是一维数组时,返回的值是一维的索引,所以只有一组索引数组
import numpy as np
a = np.array([0., 1., 2., 3., 4., 5.])
print(np.where(a > 2))
(array([3, 4, 5], dtype=int64),)
当数组是二维数组时,满足条件的数组值返回的是值的位置索引,因此会有两组索引数组来表示值的位置,返回的第一个array表示行坐标,第二个array表示纵坐标,两者一一对应
import numpy as np
a = np.array([[0., 1., 2.],
[3., 4., 5.],
[6., 7., 8.],
[9., 10., 11.]])
print(np.where(a > 6))
result:
(array([2, 2, 3, 3, 3], dtype=int64), array([1, 2, 0, 1, 2], dtype=int64))