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

Функция putmask

Функция putmask изменяет элементы массива на месте, устанавливая новые значения для тех элементов, где соответствующая маска равна True. Первым параметром функция принимает массив для изменения. Вторым параметром передается маска (логический массив). Третьим параметром указываются значения для установки. Функция изменяет исходный массив.

Синтаксис

np.putmask(a, mask, values)

Пример

Заменим элементы по маске:

import numpy as np arr = np.array([1, 2, 3, 4, 5]) mask = np.array([True, False, True, False, True]) np.putmask(arr, mask, 0) print(arr)

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

[0 2 0 4 0]

Пример

Используем условие в качестве маски:

import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7, 8]) np.putmask(arr, arr > 4, 99) print(arr)

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

[ 1 2 3 4 99 99 99 99]

Пример

Установим разные значения в зависимости от маски:

import numpy as np arr = np.array([1, 2, 3, 4, 5]) mask = np.array([True, False, True, False, True]) np.putmask(arr, mask, [10, 20, 30]) print(arr)

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

[10 2 20 4 30]

Пример

Применим putmask к двумерному массиву:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) mask = arr % 2 == 0 np.putmask(arr, mask, 0) print(arr)

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

[[1 0 3] [0 5 0] [7 0 9]]

Пример

Сравним putmask с использованием индексации:

import numpy as np arr1 = np.array([1, 2, 3, 4, 5]) arr2 = np.array([1, 2, 3, 4, 5]) np.putmask(arr1, arr1 > 3, 9) arr2[arr2 > 3] = 9 print("putmask:", arr1) print("indexing:", arr2)

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

"putmask: [1 2 3 9 9]" "indexing: [1 2 3 9 9]"

Пример

Используем putmask с массивом значений больше длины маски:

import numpy as np arr = np.array([10, 20, 30, 40, 50]) mask = np.array([True, False, False, True, True]) np.putmask(arr, mask, [100, 200, 300, 400]) print(arr)

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

[100 20 30 200 300]

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

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