数组的条件表达式:where函数
1 | import numpy as np |
1 | result |
array([ 1.1, 2.2, 1.3, 1.4, 2.5])
where函数典型的用法是给予一个array产生另一个array,如下列:
1 | arr = np.random.randn(4, 4) |
1 | arr |
array([[-2.5264061 , 0.31600076, -0.3584314 , 1.1104543 ],
[-0.36526226, 1.35603517, -0.17306545, -1.91238476],
[ 0.89170697, -0.23551787, -0.78883913, -0.76915407],
[-0.2233249 , -0.67969266, -0.64915308, -1.46796594]])
1 | arr > 0 |
array([[False, True, False, True],
[False, True, False, False],
[ True, False, False, False],
[False, False, False, False]], dtype=bool)
1 | np.where(arr > 0, 2, -2) #以标量为基础指定需要产生的元素,并不是一定是数组 |
array([[-2, 2, -2, 2],
[-2, 2, -2, -2],
[ 2, -2, -2, -2],
[-2, -2, -2, -2]])
1 | np.where(arr > 0, 2, arr) #也可以同时使用标量和数组为基,产生新的数组 |
array([[-2.5264061 , 2. , -0.3584314 , 2. ],
[-0.36526226, 2. , -0.17306545, -1.91238476],
[ 2. , -0.23551787, -0.78883913, -0.76915407],
[-0.2233249 , -0.67969266, -0.64915308, -1.46796594]])