Python 约束数组的值
我试图约束numpy数组的值,以便没有值介于-0.5和0.5之间。因此,如果我有一个数组形状(6,2),其值如下: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],
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数组不是为迭代而生成的。