Np.fromfunction работает странным образом

Я заметил, что функция np.fromfunction() работает странным образом. Если использовать одно выражение для каждого элемента, все работает:

print(np.fromfunction(lambda x, y: x * 5 + y, (3, 5), dtype=np.int_))

Вывод:

[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]

Но если попытаться использовать булевые переменные или ветвления:

print(np.fromfunction(lambda x, y: x * 5 + y if x % 2 else x * 5 - y, (3, 5), dtype=np.int_))

Ему это не нравится и он выдает ошибку ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all().

Можно ли как то все-таки использовать тернарные выражения в этой функции? Есть какие-то альтернативы?


Ответы (0 шт):