如何在这个例子中使np.where工作

时间:2017-03-29 11:46:34

标签: python numpy

我想要变量b,当b在(-2,2)之间时,输出为b;当超出域(-2,2)时,输出为0.我尝试了很多次。问题是它无法连续工作,前几行输出0。但是,仍然有一些小于-2的值,输出是b本身,它应该是0。

for k in range (nz):
    b = xg- nl*z[k]
    c = xg- nt*z[k]
    b = np.array(b)
    c = np.array(c)
    np.where((b > -2)&(b<2) ,b,0)
    np.where(( c >-2) & (c < 2),c,0)

1 个答案:

答案 0 :(得分:0)

如果将多个掩蔽数组相乘怎么办?

import numpy as np

a = np.arange(-5,5)
# [-5 -4 -3 -2 -1  0  1  2  3  4]

cond = (a>-2)*(a<2)
b = np.where(cond,a,0)
# [ 0  0  0  0 -1  0  1  0  0  0]