Функция массива Numpy с оператором if

Я использую Matplotlib и Numpy для создания сюжетов. Я хочу определить функцию, которая для данного массива возвращает другой массив со значениями, вычисленными поэлементно , например:

def func(x):
     return x*10

x = numpy.arrange(-1,1,0.01)
y = func(x)

Это нормально. Однако теперь я хочу иметь оператор if внутри func , например:

def func(x):
     if x<0:
          return 0
     else:
          return x*10

x = numpy.arrange(-1,1,0.01)
y = func(x)

Это, к сожалению, вызывает следующую ошибку

Traceback (most recent call last):
  File "D:\Scripts\test.py", line 17, in 
    y = func(x)
  File "D:\Scripts\test.py", line 11, in func
    if x<0:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

. Я просмотрел документацию для all () и any () , и они не подходят для того, что мне нужно. Так есть ли хороший способ сделать массивы дескрипторов функций поэлементными, как в первом примере?

17
задан Dan 7 November 2011 в 13:14
поделиться