根据两个条件使用Numpy where
参考:Numpy where function with two conditions
在Numpy中,np.where()
函数可以根据指定的条件返回数组中满足条件的元素的索引或值。有时候我们需要同时满足两个条件才能得到想要的结果,这时就可以使用Numpy的np.logical_and()
函数来实现。本文将详细介绍如何使用Numpy进行两个条件的筛选操作。
示例1
假设有一个一维数组arr
如下:
import numpy as np
arr = np.array([1, 5, 7, 3, 9, 4])
现在我们希望找出数组arr
中大于3且小于8的元素,可以通过以下方式实现:
import numpy as np
arr = np.array([1, 5, 7, 3, 9, 4])
result = np.where(np.logical_and(arr > 3, arr < 8))
print(arr[result])
代码运行结果为:
在这个例子中,np.logical_and(arr > 3, arr < 8)
表示数组arr
中同时大于3且小于8的元素,np.where()
函数可以根据这个条件返回满足条件的元素的索引,最后通过arr[result]
可以得到满足条件的元素值。
示例2
可以通过两个条件,满足数组元素<0
和数组元素为奇数,并将奇数元素修改为100,组成满足条件的数组。示例代码如下:
import numpy as np
arr = np.array([[-1, 3, -5], [7, -9, 11]])
condition1 = (arr < 0)
condition2 = (arr % 2 != 0)
result = np.where(condition1 & condition2, arr, 100)
print(result)
运行结果:
总结
通过这种方式,我们可以方便地对数组进行多个条件的筛选和操作,是Numpy中一个非常实用的功能。