我有以下代码:
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不应被认为与0对称,但应保持0的值。
是否有更有效/更快的(cpu时间)方法? 时间比较非常赞赏。
谢谢!