Numpy все или любой не дает мне желаемого результата - PullRequest
1 голос
/ 23 апреля 2020

Я пытаюсь добиться следующего.

  1. Я хочу убедиться, что в приведенном ниже массиве я хочу получить вложенные массивы, в которых значения ALL с индексом 0,1 меньше 2000, а значение ANY с индексом 3-5 равно больше 10000 В соответствии с этим я должен получить первый массив этого двухмерного массива. Однако я получаю пустой массив. Кто-нибудь знает почему?

  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) 
    

1 Ответ

1 голос
/ 23 апреля 2020

Вы имеете в виду:

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),)
...