Python 如何根据模糊条件从Numpy数组中选择值?
假设我有以下数组,我只想保留第一列值为39(±1),第二列值为-1(±1)的行: 我知道如果我有更简单的条件,我可以这样做:Python 如何根据模糊条件从Numpy数组中选择值?,python,arrays,numpy,Python,Arrays,Numpy,假设我有以下数组,我只想保留第一列值为39(±1),第二列值为-1(±1)的行: 我知道如果我有更简单的条件,我可以这样做: np.其中((下一个点[u arr[:,0]>39)和(下一个点[u arr[:,1]
np.其中((下一个点[u arr[:,0]>39)和(下一个点[u arr[:,1]<1))
我还知道我可以使用math.isclose(39,39.2,abs_tol=1)
,但我不知道如何有效地将两者结合起来
我的方法是用布尔值再创建两列,表示条件是否为真,然后使用
np.where()
在每列中查找true
,但这似乎不明智。您可以用
输出:
除了选择答案之外,你还可以考虑投票。这表示赞赏。
[[39.26783752, -0.84259111],
[24.44051933, 2.33262944],
[28.28138924, 6.79832602],
[37.54968262, 7.43038321]]
a = np.array(
[[39.26783752, -0.84259111],
[24.44051933, 2.33262944],
[28.28138924, 6.79832602],
[37.54968262, 7.43038321]])
a[np.isclose(a, [39, -1], atol=[1.,1.]).all(1)]
array([[39.26783752, -0.84259111]])