Функция place
Функция place заменяет элементы массива на
значения из второго массива, где маска имеет значение
True. Первым параметром передается массив для изменения.
Вторым параметром - маска (булев массив). Третьим
параметром - значения для вставки. Если значений
больше, чем элементов для замены, лишние игнорируются.
Функция изменяет массив на месте и ничего не возвращает.
Синтаксис
np.place(arr, mask, values)
Параметры
Основные параметры функции place:
-
arr- массив для изменения -
mask- булев массив, определяющий позиции для замены -
values- значения для вставки
Пример 1
Заменим четные элементы на 0:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
mask = arr % 2 == 0
np.place(arr, mask, [0])
print(arr)
Результат выполнения кода:
[1 0 3 0 5 0]
Пример 2
Используем несколько значений для замены:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
mask = arr > 2
np.place(arr, mask, [10, 20, 30])
print(arr)
Результат выполнения кода:
[1 2 10 20 30 10]
Пример 3
Замена отрицательных элементов в двумерном массиве:
import numpy as np
arr = np.array([[-1, 2, -3],
[4, -5, 6]])
mask = arr < 0
np.place(arr, mask, [0, 0])
print(arr)
Результат выполнения кода:
[[0 2 0]
[4 0 6]]
Пример 4
Сравнение place и putmask:
import numpy as np
arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([1, 2, 3, 4, 5])
mask = arr1 > 2
np.place(arr1, mask, [10, 20])
np.putmask(arr2, mask, [10, 20])
print("place:", arr1)
print("putmask:", arr2)
Результат выполнения кода:
place: [1 2 10 20 10]
putmask: [1 2 10 20 10]