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

时间:2017-05-29 16:14:19

标签: 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:
    peaks[i, i] = 0

我希望“峰值”#39;要保持相同的50 x 50形状的堆叠&#39;, 但这似乎不起作用。

任何帮助将不胜感激! 谢谢!

1 个答案:

答案 0 :(得分:0)

您要做的是在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)