我有以下代码:
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]))
我的实际数组比这个大得多,但它由从最小到最大的整数组成(在本例中为-3到3)
最小值和最大值不被视为与0对称,但应保持0的值
有没有一种更高效/更快(cpu时间)的方法可以做到这一点? 非常感谢时间比较
谢谢
使用np.where
与其他方法的比较
测试
方法
测试代码
结果(秒)
方法最快的地方在哪里
我会使用
np.select
:测试时间:
相关问题 更多 >
编程相关推荐