Python Numpy Jupyter笔记本“具有多个元素的数组的真值不明确,请使用.any()或.all()”错误

4xy9mtcn  于 2023-02-04  发布在  Python
关注(0)|答案(2)|浏览(263)

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)

感谢您的帮助!

z9smfwbn

z9smfwbn1#

您的函数被设置为接收整数,而不是NumPy数组。此外,如果您尝试递归计算阶乘,则会错过对factorial函数的递归调用。

sqxo8psd

sqxo8psd2#

使用numpy,你将整个ndarray传递给你的函数,所以n不是一个单独的值。
你的职能也没有多大意义。如果你告诉我们你的最终目标,也许我们能更好地帮助你。
如果要将函数应用于testValues中的每个数字,可能需要查看numpy.vectorize

np.vectorize(factorial)(testValues)

相关问题