numpy元素明智的“之间”比较

时间:2019-03-26 03:19:43

标签: numpy

我有一个数组a,并且想要对a的每个元素是否在a * 0.5和a * 1.5之间进行逐元素比较。

忽略了这样的事实,显然在构造上是正确的,我可以使用numpy中的运算符来做到这一点吗?像np.less_thannp.greater_than之类的东西?

我最初尝试使用

np.logical_or(a * 0.9 <= a, a <= a * 1.1)

但是在负值时不起作用。

a = np.array([
       [[ 0.08537571, -0.0067365 , -0.01217636],
        [-0.0067365 ,  0.02299117,  0.01799304],
        [-0.01217636,  0.01799304,  0.02048184]],

       [[ 0.10117361,  0.07530722,  0.02475461],
        [ 0.07530722,  0.06585286,  0.02021006],
        [ 0.02475461,  0.02021006,  0.01555354]],

       [[ 0.0310301 ,  0.03208571,  0.02354831],
        [ 0.03208571,  0.03584655,  0.03389133],
        [ 0.02354831,  0.03389133,  0.08047313]],

       [[ 0.00012582,  0.00047486,  0.00037565],
        [ 0.00047486,  0.02343885,  0.01601785],
        [ 0.00037565,  0.01601785,  0.02085996]]])

1 个答案:

答案 0 :(得分:0)

np.logical_or(abs(a) * 0.9 <= abs(a), abs(a) <= abs(a) * 1.1)

调整代码以包含abs()只会比较幅度。