#python #machine-learning #numpy-ndarray
Вопрос:
Я использую глубокое обучение Keras на Python. У меня есть массив numpy, который имеет такую форму: [5, 30, 30, 30, 65] Я хочу выполнить argmax по 5-му измерению (65), установив индекс наибольшего значения в каждом 5-м массиве равным 1, а для всех остальных-0. Для контекста массив выводится моделью генератора, и я использую последнее измерение длины 65 в качестве одноразовой кодировки. Как бы я это сделал?
Ответ №1:
Чтобы выполнить argmax
операцию с 5-м измерением, вы можете указать axis
параметр, используя подсчет на основе 0.
Поэтому, чтобы получить argmax
для 5-го измерения, вы бы использовали:
idx = np.argmax(arr, axis=4)[0, 0, 0, 0]
Затем, чтобы скрыть массив 5-го измерения в однократной кодировке, вы можете установить этот массив в np.zeros
массив, а затем обновить значение idx
(сверху) до 1 следующим образом:
arr[a, b, c, d] = np.zeros((65,))
arr[a, b, c, d, idx] = 1
где a
, b
, c
, и d
являются краткими индексами вдоль 1-го по 4-е измерения.