Code with Error Screenshot
您好,我有一个问题,为什么我会得到这个错误消息:
The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
当我试着运行这个函数,并传入一个NumPy数组时:
testValues=np.arange(-5,5,0.01)
def factorial(n):
if n == 0:
return 0
else:
return 1
factorial(testValues)
感谢您的帮助!
2条答案
按热度按时间z9smfwbn1#
您的函数被设置为接收整数,而不是NumPy数组。此外,如果您尝试递归计算阶乘,则会错过对
factorial
函数的递归调用。sqxo8psd2#
使用numpy,你将整个ndarray传递给你的函数,所以n不是一个单独的值。
你的职能也没有多大意义。如果你告诉我们你的最终目标,也许我们能更好地帮助你。
如果要将函数应用于
testValues
中的每个数字,可能需要查看numpy.vectorize