@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*

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

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

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

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 09:18
500 руб./в час
26 апр. 2024, в 06:46
1500 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект