Как мне создать фильтр numpy, добавляя каждый элемент фильтра в зависимости от логики, а не запуская весь фильтр сразу?
Я хочу создать такой фильтр:
filter = []
IF A == 0:
filter.append(np.where(a>0))
ELSE:
filter.append(np.where(b>0))
В отличие от этого.
filtered_values = np.where(
(dataFrame['a'] > 0) &
(dataFrame['b'] > 0))
Вы можете начать с фильтра всех True
, а затем добавить другие условия в зависимости от значения A
, например:
f = np.full(len(a), True)
if A == 0:
f &= a > 0
else:
f &= b > 0
Я не понимаю, как это работает, но это так! Спасибо.
where
принимает логический массив и возвращает кортеж индексных массивов.