Python 创建If语句以从数组中删除元素

Python 创建If语句以从数组中删除元素,python,arrays,if-statement,Python,Arrays,If Statement,我有一个名为stack的numpy数组,比如说50乘50,它在每个位置都有一个特定的值(例如stack[23,19]=-0.13)。 我试图创建一个if语句,其中,如果任意位置的值低于某个值,则该值将变为0。 因此,如果if语句之前的stack[23,19]=-0.13,那么它将在语句之后变成stack[23,19]=0。 到目前为止我有 peaks = stack if abs(peaks[i, i]) > -1.2 or abs(peaks[i, i]) < 1.2: p

我有一个名为stack的numpy数组,比如说50乘50,它在每个位置都有一个特定的值(例如
stack[23,19]=-0.13
)。 我试图创建一个if语句,其中,如果任意位置的值低于某个值,则该值将变为0。 因此,如果if语句之前的
stack[23,19]=-0.13
,那么它将在语句之后变成
stack[23,19]=0
。 到目前为止我有

peaks = stack
if abs(peaks[i, i]) > -1.2 or abs(peaks[i, i]) < 1.2:
    peaks[i, i] = 0
peaks=stack
如果abs(峰值[i,i])>-1.2或abs(峰值[i,i])<1.2:
峰值[i,i]=0
我希望“山峰”保持50乘50的“堆叠”形状, 但这似乎不起作用

任何帮助都将不胜感激!
谢谢大家!

您要做的是在numpy数组上映射函数。这样做的一个好方法是使用
numpy.vectorize

def my_condition(x) :
     if abs(x)<1.2 : 
     #know that abs refers to the absolute value
          return 0
     return x
vfunct=np.vectorize(my_condition)
peaks=vfunct(stack)
def my_条件(x):
如果abs(x)
abs(peaks[i,i])>-1.2
不确定abs是做什么的,但如果这是python的绝对函数,它将始终返回trueabs(x)将始终大于或等于零,但是即使更改它,您也无法得到所需的解决方案,请说明如何初始化数组(或数组示例)循环以迭代所有值。