python #arrays #numpy
#python #массивы #numpy
Вопрос:
У меня есть двумерный (2D) массив, который содержит много одномерных (1D) массивов случайных логических значений.
import numpy as np
def random_array_of_bools():
return np.random.choice(a=[False, True], size=5)
boolean_arrays = np.array([
random_array_of_bools(),
random_array_of_bools(),
... so on
])
Предположим, что у меня есть три массива:
[True, False, True, True, False]
[False, True, True, True, True]
[True, True, True, False, False]
Это мой желаемый результат:
[False, False, True, False, False]
Как я могу добиться этого с помощью NumPy?
Ответ №1:
Используйте min
с axis=0
:
>>> boolean_array.min(axis=0)
array([False, False, True, False, False])
>>>
Ответ №2:
Используйте .all:
import numpy as np
arr = np.array([[True, False, True, True, False],
[False, True, True, True, True],
[True, True, True, False, False]])
res = arr.all(0)
print(res)
Вывод
[False False True False False]
Комментарии:
1. Спасибо! Пока я буду придерживаться использования .min(axis= 0), но я вижу, как это работает!
Ответ №3:
попробуйте использовать numpy bitwise_and =>
out_arr = np.bitwise_and(np.bitwise_and(in_arr1, in_arr2),in_arr3)