Я ищу эффективный, pythoni c способ установки n-го значения вдоль одной оси в ndarray в соответствии с условным тестом. Вот пример.
Начальный ndarray:
array([[[111, 112, 113, 114],
[121, 122, 123, 124]],
[[211, 212, 213, 214],
[221, 222, 223, 224]],
[[311, 312, 313, 314],
[321, 322, 323, 324]]])
Я хотел бы проверить элементы в позиции 2 вдоль самой внутренней оси (ось 2), так что, другими словами, все числа в этом примере это заканчивается на 3. Если число ниже предельного значения, мы скажем 215, затем установите значение на 0.
Результат будет выглядеть так:
array([[[111, 112, 0, 114],
[121, 122, 0, 124]],
[[211, 212, 0, 214],
[221, 222, 223, 224]],
[[311, 312, 313, 314],
[321, 322, 323, 324]]])
Я пробовал комбинации логического индексирования, numpy .where и др. c. но изоляция n-го элемента вдоль определенной оси при использовании необычного индексирования, по-видимому, является, по крайней мере, одним уровнем сложности за пределы любых примеров, которые я могу найти. Я надеюсь, что это вызывает интересный вопрос, и я благодарен за любую помощь.