У меня есть следующий код:
import numpy as np
MIN = -3
MAX = 3
def bound(array):
return np.array([(0 if v == 0 else (MIN if v < 0 else 1)) for v in array]),\
np.array([(0 if v == 0 else (-1 if v < 0 else MAX)) for v in array])
print(bound(np.array(range(MIN, MAX + 1))))
, который возвращает:
(array([-3, -3, -3, 0, 1, 1, 1]), array([-1, -1, -1, 0, 3, 3, 3]))
Мой фактический массив намного больше, чем этот, но состоит из целых чисел от MIN до MAX ( в данном случае от -3 до 3).
MIN и MAX не должны считаться симметричными c с 0, но значения 0 должны поддерживаться.
Есть ли более эффективный / быстрый (время процессора) способ сделать то же самое? Мы очень ценим сравнение времени.
Спасибо!