Как добавить 2D с каждым слоем 3D при True

#python #arrays #3d #2d

#python #массивы #3D #2d

Вопрос:

У меня действительно есть 3 массива.

 a = [[0 1] [2 3]]
b = [[True False] [True False]]
c = [[[1 1] [1 1] [1 1] [1 1]][[1 1] [1 1] [1 1] [1 1]]]
  

a является 2D массивом, содержащим числа.
b — это 2D массив, содержащий утверждения True или False.
c — это 3D массив, содержащий числа.

допустим, у c есть 2 слоя 2D-массива, и я хотел бы добавлять a с каждым слоем, c пока b значение True. Есть ли какой-либо способ сделать это без использования цикла для каждой ячейки в python?

ожидаемый результат

 k = [[2 1] [4 3]]
  

Комментарии:

1. Пожалуйста, опубликуйте, какой код вы внедрили, чтобы его можно было оптимизировать для эффективной работы.

Ответ №1:

Спасибо за ответы. Я думаю, что нашел ответ, который я хочу.

 k = np.where(b,a c.sum(axis = 1),a 0).