numpy.ufunc.at
метод
- ufunc.at(a, indices, b=None, /)
-
Выполняет операцию на месте без буферизации для операнда 'a' для элементов, указанных 'indices'. Для операции сложения ufunc, этот метод эквивалентен
a[indices] += b, за исключением того, что результаты накапливаются для элементов, которые индексируются более одного раза. Например,a[[0,0]] += 1будет увеличивать первый элемент только один раз из-за буферизации, тогда какadd.at(a, [0,0], 1)будет увеличивать первый элемент дважды.Новая функция в версии 1.8.0.
- Параметры
-
- aarray_like
-
Массив, для которого выполняется операция на месте.
- indicesarray_like или кортеж
-
Объект индексации или среза, похожий на массив, для индексирования первого операнда. Если первый операнд имеет несколько измерений, индексы могут быть кортежем из объектов индексации или срезов, похожих на массивы.
- barray_like
-
Второй операнд для ufunc, требующего двух операндов. Операнд должен быть совместим по размеру с первым операндом после индексирования или среза.
Примеры
Установите элементы 0 и 1 в их отрицательные значения:
>>> 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])
© 2005–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.ufunc.at.html