numpy.ufunc.at#

метод

универсальная функция.в(a, индексы, b=None, /)#

Выполняет небуферизованную операцию на месте для операнда 'a' для элементов, указанных 'indices'. Для функции сложения этот метод эквивалентен a[indices] += b, за исключением того, что результаты накапливаются для элементов, индексированных более одного раза. Например, a[[0,0]] += 1 увеличит только первый элемент один раз из-за буферизации, тогда как add.at(a, [0,0], 1) увеличит первый элемент дважды.

Параметры:
aarray_like

Массив, над которым выполняется операция на месте.

индексыarray_like или кортеж

Объект индекса, подобный массиву, или объект среза для индексации первого операнда. Если первый операнд имеет несколько измерений, индексы могут быть кортежем объектов индекса, подобных массиву, или объектов среза.

barray_like

Второй операнд для ufunc, требующих двух операндов. Операнд должен быть транслируемым над первым операндом после индексации или среза.

Примеры

Установить элементы 0 и 1 в их отрицательные значения:

>>> import numpy as np
>>> a = np.array([1, 2, 3, 4])
>>> np.negative.at(a, [0, 1])
>>> a
array([-1, -2,  3,  4])

Увеличить элементы 0 и 1, и увеличить элемент 2 дважды:

>>> a = np.array([1, 2, 3, 4])
>>> np.add.at(a, [0, 1, 2, 2], 1)
>>> a
array([2, 3, 5, 4])

Добавить элементы 0 и 1 из первого массива во второй массив и сохранить результаты в первом массиве:

>>> a = np.array([1, 2, 3, 4])
>>> b = np.array([1, 2])
>>> np.add.at(a, [0, 1], b)
>>> a
array([2, 4, 3, 4])