Предположим, у меня есть следующий массив NumPy
>>> import numpy as np
>>> arr = np.array([[[1,2,3,4], [5,6,7,8]], [[1,2,3,4], [5,6,7,8]]])
>>> arr
array([[[1, 2, 3, 4],
[5, 6, 7, 8]],
[[1, 2, 3, 4],
[5, 6, 7, 8]]])
Я бы хотел отобразить функцию на часть массива, например:
flip_sign = lambda x: x*(-1)
В моем примере яхотел бы применить эту функцию только ко второй строке, получая:
array([[[1, 2, 3, 4],
[5, 6, 7, 8]],
[[-1, -2, -3, -4],
[-5, -6, -7, -8]]])
По сути, я хочу использовать что-то вроде
np.apply_along_axis(flip_sign, 1, arr)
, но указав индекс по оси 0 (илидиапазон индексов), где должна применяться эта функция.
Конечно, я мог бы разбить массив на подмножества, затем применить функцию к подмножеству и снова объединить подмножества.Но есть ли встроенная функция (numpy), которая может легко это сделать?