Numpy логически объединяет логические массивы с numpy.NaN ⇐ Python
-
Гость
Numpy логически объединяет логические массивы с numpy.NaN
Предположим, у меня есть 2 массива numpy. Первый всегда будет содержать ТОЛЬКО значения True или False. секунда может содержать True или False или numpy.NaN. Я хочу объединить два массива так, чтобы, если второй массив не имеет значения True или False (его значение равно numpy.NaN), он возьмет значение из того же места, что и первый массив, в противном случае он примет от значения True или False. Сбивает с толку? Большой! Вот несколько примеров:
# пример 1 a1 = np.array([True, False, True, False, True], dtype=object) a2 = np.array([np.NaN, np.NaN, np.NaN, np.NaN, np.NaN], dtype=объект) вывод = a1.combinaficate(a2) # печатает [True, False, True, False, True] # пример 2 a1 = np.array([True, False, True, False, True], dtype=object) a2 = np.array([np.NaN, True, np.NaN, False, np.NaN], dtype=объект) вывод = a1.combinaficate(a2) # печатает [True, True, True, False, True] # пример 3 a1 = np.array([True, True, True, True, True], dtype=object) a2 = np.array([np.NaN, np.NaN, np.NaN, False, np.NaN], dtype=объект) вывод = a1.combinaficate(a2) # печатает [True, True, True, False, True] # пример 4 a1 = np.array([False, False, False, False, False], dtype=object) a2 = np.array([np.NaN, np.NaN, True, False, np.NaN], dtype=object) вывод = a1.combinaficate(a2) # печатает [Ложь, Ложь, Правда, Ложь, Ложь] Я знаю, что мог бы написать цикл for, но суть вопроса такова: «Есть ли способ использовать строго numpy для выполнения этих вычислений?».
Спасибо.
Предположим, у меня есть 2 массива numpy. Первый всегда будет содержать ТОЛЬКО значения True или False. секунда может содержать True или False или numpy.NaN. Я хочу объединить два массива так, чтобы, если второй массив не имеет значения True или False (его значение равно numpy.NaN), он возьмет значение из того же места, что и первый массив, в противном случае он примет от значения True или False. Сбивает с толку? Большой! Вот несколько примеров:
# пример 1 a1 = np.array([True, False, True, False, True], dtype=object) a2 = np.array([np.NaN, np.NaN, np.NaN, np.NaN, np.NaN], dtype=объект) вывод = a1.combinaficate(a2) # печатает [True, False, True, False, True] # пример 2 a1 = np.array([True, False, True, False, True], dtype=object) a2 = np.array([np.NaN, True, np.NaN, False, np.NaN], dtype=объект) вывод = a1.combinaficate(a2) # печатает [True, True, True, False, True] # пример 3 a1 = np.array([True, True, True, True, True], dtype=object) a2 = np.array([np.NaN, np.NaN, np.NaN, False, np.NaN], dtype=объект) вывод = a1.combinaficate(a2) # печатает [True, True, True, False, True] # пример 4 a1 = np.array([False, False, False, False, False], dtype=object) a2 = np.array([np.NaN, np.NaN, True, False, np.NaN], dtype=object) вывод = a1.combinaficate(a2) # печатает [Ложь, Ложь, Правда, Ложь, Ложь] Я знаю, что мог бы написать цикл for, но суть вопроса такова: «Есть ли способ использовать строго numpy для выполнения этих вычислений?».
Спасибо.
Мобильная версия