Булевы операции над двумерным массивом против одномерного массива без зацикливания - PullRequest
0 голосов
/ 21 января 2020

У меня есть два numpy массива. Один - это двумерный массив:

a = np.array([
    [1,2,3,4],
    [2,5,4,3],
    [4,3,2,3],
    [4,2,1,2]
])

Другой - это одномерный массив:

b = np.array([1,2,3,4,5])

Размеры a и b не обязательно совпадают.

Я хотел бы оценить логическую операцию a<b на всех позициях a против всех позиций на b. Это просто с al oop over b (сравнивая все элементы a с одним элементом b одновременно), но есть ли способ сделать это без циклов?

В качестве выходных данных я представляю трехмерный массив, в котором все позиции в a оцениваются для всех позиций в b следующим образом:

array([[[False False False False],
        [False False False False],
        [False False False False],
        [False False False False]],

        [[True False False False],
        [False False False False],
        [False False False False],
        [False False True  False]],

        [[True  True  False False],
        [ True  False False False],
        [False  False True  False],
        [False  True  True  True]],

        [[True  True  True  False],
        [ True  False False True],
        [False  True  True  True],
        [False  True  True  True]],

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