Numpy all or any没有给我想要的结果。

问题描述 投票:0回答:1

我试图实现以下目标。

  1. 我想确保在下面的数组中,我想检索的子数组中,索引0,1处的所有值都小于2000,索引3-5处的任何值都大于10000。根据这一点,我应该检索这个2d数组的第一个数组。但是我得到的是一个空数组。有人知道为什么吗?

  2. 你知道我如何从结果数组x中测试这个条件是否被正确应用吗?

    test = np.array([[1000,1500,1000,7000,200,40000], [1000,2200,5000,7000,200,4000], [1000,2200,5000,7000,200,40000]])
    x = np.where(np.all(test[0:2]<2000) & np.any(test[3:6]>10000))
    print(x) 
    
python pandas numpy scipy numpy-ndarray
1个回答
1
投票

你的意思是

mask = (test[:,:2] < 2000).all(1) & (test[:,3:6] > 10000).any(1)

test[mask]
# array([[ 1000,  1500,  1000,  7000,   200, 40000]])

np.where(mask)
# (array([0], dtype=int64),)
© www.soinside.com 2019 - 2024. All rights reserved.