numpy的where函数

时间:2023-03-10 06:29:51
numpy的where函数
numpy.where(condition[,x,y])

condition是条件,x,y是可选参数,这三个输入参数都是array_like的形式且三者的维度相同

当conditon的某个位置为true时,输出x对应位置的元素,否则选择y对应位置的元素;如果只有参数condition,则函数返回为true的元素的坐标位置信息。

x=np.random.randn(4,4)
out:array([[-1.03267233, -0.35413659, -0.40964005, -0.66072183],
  [-1.60208036, -0.32111585, -0.6393315 , 0.0515343 ],
  [ 0.91974974, 2.26454428, -1.08337181, -1.37117197],
  [-1.47721393, 1.2291793 , 0.16339106, -2.1278268 ]])
np.where(x>0,1,-1)
Out[45]:
array([[ 1, -1, -1, -1],
[ 1, 1, 1, 1],
[-1, 1, -1, -1],
[-1, -1, 1, 1]])

np.where([[True,False],[True,False]],[[1,2],[3,4]],[[5,6],[7,8]])
Out[46]:
array([[1, 6],
    [3, 8]])

x=np.array([2,2,3,4])
np.where(x==2) Out[49]: (array([0, 1], dtype=int64),)