我想制作一个方形信号(作为数组)。我正在尝试以下代码:
import numpy as np
x = np.linspace(0,2000, 100)
def func(x):
x = np.where(x<500 or x>530, 0, 2)
return x
y = func(x)
不幸的是,它引发了以下错误:
Traceback (most recent call last):
File "test.py", line 24, in <module>
y = func(x)
File "test.py", line 20, in func
x = np.where(x<500. or x>530, 0., 2.)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我不明白我的代码有什么问题。
答案 0 :(得分:0)
您无法在此处使用or
。 or
是一个Python函数,用于评估操作数的真实性,并根据返回的操作数之一进行操作。
你可以使用逻辑或(|
),这是由numpy本身实现的:
x = np.where((x < 500) | (x > 530), 0, 2)