@kambaya

Как изменить одинаковые значения в нескольких элементах массива 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*

Заранее спасибо!
  • Вопрос задан
  • 131 просмотр
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
area = matrix_new[100:200, 100:200]  # это делает ссылку на область массива, а не копию области!
area[area == 250] = 255  # так что когда мы изменяем эту область, оригинал изменится.

Должно работать быстрее, так как цикл прохода по массиву реализован внутри numpy, а не в рамках интерпретатора питона.
Но будет есть память, если массив большой.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы