Python 约束数组的值

Python 约束数组的值,python,numpy,Python,Numpy,我试图约束numpy数组的值,以便没有值介于-0.5和0.5之间。因此,如果我有一个数组形状(6,2),其值如下: array([[ 0.49873803, -1.66316398], [ -0.36091764, 2.0635736 ], [ -1.09922111, -2.49380792], [ 0.92724579, -5.19540319], [ 1.49726584, -0.22718924],

我试图约束numpy数组的值,以便没有值介于-0.5和0.5之间。因此,如果我有一个数组形状(6,2),其值如下:

array([[  0.49873803,  -1.66316398],
       [ -0.36091764,   2.0635736 ],
       [ -1.09922111,  -2.49380792],
       [  0.92724579,  -5.19540319],
       [  1.49726584,  -0.22718924],
       [ 60.        ,  60.        ]])
如何让numpy将-0.5->0.0的值更改为-0.5,以及 从0.5->0.0到0.5,因此示例数组为:

array([[  0.5,  -1.66316398],
       [ -0.5,   2.0635736 ],
       [ -1.09922111,  -2.49380792],
       [  0.92724579,  -5.19540319],
       [  1.49726584,  -0.5],
       [ 60.        ,  60.        ]])

我试着使用np.clip,但没用,或者我想不出来,所以我来了

对于您的
a
只需运行:

a[( 0.  <= a) & (a < 0.5)] =  0.5
a[(-0.5 <  a) & (a < 0. )] = -0.5

a[(0.对于您的
a
只需运行:

a[( 0.  <= a) & (a < 0.5)] =  0.5
a[(-0.5 <  a) & (a < 0. )] = -0.5

a[(0.您是否尝试过遍历数组

i = 0
j = 0

while ( i < len(A)):
    while (j < len(i)):
        if  -0.5 <= A[i][j] <= 0:
            A[i][j] = -0.5
        if  0 <= A[i][j] <= 0.5:
            A[i][j] = 0.5
        j = j + 1

    i =  i +1
i=0
j=0
而(i如果-0.5您是否尝试过只遍历数组

i = 0
j = 0

while ( i < len(A)):
    while (j < len(i)):
        if  -0.5 <= A[i][j] <= 0:
            A[i][j] = -0.5
        if  0 <= A[i][j] <= 0.5:
            A[i][j] = 0.5
        j = j + 1

    i =  i +1
i=0
j=0
而(i如果-0.5,我认为
a[(0.5>a)和(a>=0)]=0.5
看起来更干净。(我猜OP还应该决定如何处理0。)我喜欢
putmask()
的用法。我认为
a[(0.5>a)和(a>=0)]=0.5
看起来更干净。(我猜OP还应该决定如何处理0。)我喜欢
putmask()的用法
。Numpy数组不是为迭代而生成的。Numpy数组不是为迭代而生成的。