如果陈述包含数字数组

时间:2019-02-20 05:07:34

标签: python-2.7 if-statement

我有一个数字数组

x = np.arange(-5., 5., .001)

和一个等式

y=somefunction(x*r) 

当x的绝对值小于.1时,我想让r = 5,否则让r = 0。然后,我应该得到len(x)的许多y值。

这是我尝试过的

if abs(x) < .1 : 
    r=5
else:
    r=0

1 个答案:

答案 0 :(得分:2)

尝试一下,它将起作用。而不是使用if-else,请使用向量化方法。此方法比if-else更快。我的建议是,始终尝试使用向量化方法进行快速处理,而不要使用if-else,for-loops等。

x = np.arange(-5., 5., .001)
print(x)
output: array([-5.   , -4.999, -4.998, ...,  4.997,  4.998,  4.999])

x[abs(x)< .1]=5
x[abs(x)> .1]=0

同样,您可以打印x变量的值,然后您将看到更改。

希望这会对您有所帮助。祝你好运!