Несколько условий np.extract - PullRequest
0 голосов
/ 30 мая 2018

У меня есть массив, и я не хочу извлекать все записи, которые находятся в определенном диапазоне

x = np.array([1,2,3,4])
condition = x<=4 and x>1
x_sel = np.extract(condition,x)

Но это не работает.Я получаю

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

Если я делаю то же самое без и и проверяю, например, только одно условие

x = np.array([1,2,3,4])
condition = x<=4 
x_sel = np.extract(condition,x)

все работает ... Конечно, я мог бы просто применитьпроцедура дважды с одним условием, но разве нет решения сделать это в одной строке?

Большое спасибо заранее

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Вы можете использовать либо:

import numpy as np

x = np.array([1,2,3,4])
condition = (x <= 4) & (x > 1)
x_sel = np.extract(condition,x)
print(x_sel)
# [2 3 4]

, либо без extract:

x_sel = x[(x > 1) & (x <= 4)]
0 голосов
/ 30 мая 2018

Это должно работать:

import numpy as np

x = np.array([1,2,3,4])
condition = (x<=4) & (x>1)
x_sel = np.extract(condition,x)

Помните об использовании and и &: Разница между 'и' (логическим) и '&' (побитовым) в python.Почему разница в поведении со списками и массивами?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...