函数定义:ValueError:具有多个元素的数组的真值是不明确的。使用a.any()或a.all()

时间:2017-07-20 13:21:52

标签: python numpy

我想制作一个方形信号(作为数组)。我正在尝试以下代码:

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()

我不明白我的代码有什么问题。

1 个答案:

答案 0 :(得分:0)

无法在此处使用or or是一个Python函数,用于评估操作数的真实性,并根据返回的操作数之一进行操作。

你可以使用逻辑或|),这是由numpy本身实现的:

x = np.where((x < 500) | (x > 530), 0, 2)