Функция place
Функция place изменяет элементы массива на заданные значения
в тех позициях, где маска возвращает истину. Первым параметром
функция принимает целевой массив arr, вторым - маску mask,
а третьим - значения для замены vals. Функция изменяет массив
на месте и ничего не возвращает.
Синтаксис
np.place(arr, mask, vals)
Пример
Давайте заменим все отрицательные элементы на ноль в массиве:
import numpy as np
arr = np.array([-1, 2, -3, 4, -5])
mask = arr < 0
np.place(arr, mask, 0)
print(arr)
Результат выполнения кода:
[0 2 0 4 0]
Пример
Давайте заменим значения по маске на последовательность значений из другого массива:
import numpy as np
arr = np.array([10, 20, 30, 40, 50])
mask = arr > 25
vals = np.array([100, 200, 300])
np.place(arr, mask, vals)
print(arr)
Результат выполнения кода:
[10 20 100 200 300]
Пример
Давайте заменим элементы по маске на скалярное значение:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
mask = arr % 2 == 0
np.place(arr, mask, -1)
print(arr)
Результат выполнения кода:
[[1 -1 3]
[-1 -1 -1]]
Пример
Давайте заменим элементы по маске на значения из массива, который короче, чем количество заменяемых элементов:
import numpy as np
arr = np.array([10, 20, 30, 40, 50, 60, 70])
mask = arr > 30
vals = np.array([100, 200])
np.place(arr, mask, vals)
print(arr)
Результат выполнения кода:
[10 20 30 100 200 100 200]