Замена элементов массива в заданном диапазоне - PullRequest
0 голосов
/ 22 октября 2018

Скажем, у меня есть следующий массив numpy.

arr = np.array( [ 1.0, 1.1, 1.44, 1.8, 1.0, 1.67, 1.23, 1.0] )

Я мог бы заменить все элементы, которые равны 1.0, на 0.0, просто используя следующую строку.

arr[arr==1.0] = 0.0

Как я могу заменитьвсе элементы между, скажем, 1.0 - 1.5 с 1.0 без прохождения через цикл for.

По сути, я спрашиваю, как сделать следующее

arr[arr>1.0 and arr<1.5] = 1.0

Спасибо

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Вам просто нужно объединить условия вместе, используя & и заключив условия в ( )

arr[(arr>1.0) & (arr<1.5)] = 1.0

# array([1.  , 1.  , 1.  , 1.8 , 1.  , 1.67, 1.  , 1.  ])   
0 голосов
/ 22 октября 2018

Вы можете сделать это следующим образом

arr = np.array( [ 1.0, 1.1, 1.44, 1.8, 1.0, 1.67, 1.23, 1.0] )
arr[(1<arr) & (arr<1.5)] = 1.0

Вам нужно использовать побитовое &, чтобы объединить массивы в одну маску массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...