在 python 中的 2 个数组之间使用布尔运算
Using boolean opeation between 2 arrays in python
我有两个数组,比方说:
a = np.array([1,2,3,4,5,6,7])
b = np.array([1,2,10,18,3,4,7])
现在我想应用 双重条件,2<a<6
和 2<b<6
。现在我如何获得 a
和 b
的那些 对象 2<a<6
和 2<b<6
?
我试过了
condition_a = a[(a>2)*(a<6)]
condition_b = b[(b>2)*(b<6)]
new_a = a[(condition_a) and (condition_b)]
new_b = b[(condition_a) and (condition_b)]
但是没用!!
mask = (a>2) & (a<6) & (b>2) & (b<6)
new_a = a[mask]
new_b = b[mask]
使用&
给出与*
相同的结果,但由于我们在这里执行logical_and
,我认为使用&
更清楚。
我有两个数组,比方说:
a = np.array([1,2,3,4,5,6,7])
b = np.array([1,2,10,18,3,4,7])
现在我想应用 双重条件,2<a<6
和 2<b<6
。现在我如何获得 a
和 b
的那些 对象 2<a<6
和 2<b<6
?
我试过了
condition_a = a[(a>2)*(a<6)]
condition_b = b[(b>2)*(b<6)]
new_a = a[(condition_a) and (condition_b)]
new_b = b[(condition_a) and (condition_b)]
但是没用!!
mask = (a>2) & (a<6) & (b>2) & (b<6)
new_a = a[mask]
new_b = b[mask]
使用&
给出与*
相同的结果,但由于我们在这里执行logical_and
,我认为使用&
更清楚。