РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
75 of 541 menu

Функция put_along_axis

Функция put_along_axis записывает значения в массив по индексам, переданным в виде массива, вдоль указанной оси. Первым параметром функция принимает целевой массив, вторым - массив индексов, третьим - записываемые значения, четвертым - ось. Запись выполняется на месте, без создания нового массива.

Синтаксис

np.put_along_axis(arr, indices, values, axis)

Пример

Запишем значения в одномерный массив по индексам:

import numpy as np arr = np.array([1, 2, 3, 4, 5]) indices = np.array([0, 2, 4]) values = np.array([10, 20, 30]) np.put_along_axis(arr, indices, values, axis=0) print(arr)

Результат выполнения кода:

[10 2 20 4 30]

Пример

Запишем значения в двумерный массив вдоль оси 1:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) indices = np.array([[0, 2], [1, 2], [0, 1]]) values = np.array([[10, 20], [30, 40], [50, 60]]) np.put_along_axis(arr, indices, values, axis=1) print(arr)

Результат выполнения кода:

[[10 2 20] [ 4 30 40] [50 60 9]]

Пример

Используем put_along_axis для замены максимальных элементов в каждой строке:

import numpy as np arr = np.array([[1, 5, 3], [4, 2, 6]]) indices = np.argmax(arr, axis=1)[:, np.newaxis] values = np.array([99, 88])[:, np.newaxis] np.put_along_axis(arr, indices, values, axis=1) print(arr)

Результат выполнения кода:

[[ 1 99 3] [ 4 2 88]]

Пример

Сравним put_along_axis и take_along_axis:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) indices = np.array([[0, 2], [1, 0]]) taken = np.take_along_axis(arr, indices, axis=1) np.put_along_axis(arr, indices, [[99, 88], [77, 66]], axis=1) print("Taken values:", taken) print("Modified array:") print(arr)

Результат выполнения кода:

"Taken values:" [[1 3] [5 4]] "Modified array:" [[99 2 88] [66 77 6]]

Смотрите также

  • функцию take_along_axis,
    которая выбирает элементы по индексам вдоль оси
  • функцию put,
    которая записывает значения по индексам
  • функцию putmask,
    которая заменяет значения по маске
  • функцию place,
    которая заменяет значения в массиве по маске
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить