Как изменить одинаковые значения в нескольких элементах массива numpy не перебирая элементы циклом? Есть ли метод у нампая?
Здравствуйте! Задачка такая. Есть двухмерный массив и желание изменить в нём все элементы со значением 250, на значение 255. Возможно есть просто какой-то метод у нампая, который делает это в одну строку и не нужно перебирать элементы? (если таких переборов много, то это уже занимает какое-то ценное время)
Сейчас вот так:
for i in range(100, 200):
for j in range(100, 200):
if matrix_new[i, j] == 250:
matrix_new[i, j] = 255
Хочется вот так:
matrix_new[100:200, 100:200].*волшебство заменяющее 250 на 255*
area = matrix_new[100:200, 100:200] # это делает ссылку на область массива, а не копию области!
area[area == 250] = 255 # так что когда мы изменяем эту область, оригинал изменится.
Должно работать быстрее, так как цикл прохода по массиву реализован внутри numpy, а не в рамках интерпретатора питона.
Но будет есть память, если массив большой.
Логику понял, но этот метод можно использовать только со всей матрицей сразу, но не с отдельной её частью? Не могу понять как область задать, например [100:200, 100:200]. То есть вот так не работает [100:200, 100:200, matrix_new == 250]