猿问

将数组传入函数并进行遍历,为何用来遍历的元素变成了整个数组

将数组传入函数并进行遍历,arr是np.array数组,t是数字

相关代码

def timereduce(arr,t):
    print(arr)
    for q in arr:
        q-=t
        if q<0:
            q=0
    print(q)
    return arr

报错:ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我输出q,发现q变成了整个数组,这是为什么

翻翻过去那场雪
浏览 602回答 3
3回答

慕斯王

Use a.any() or a.all() 已经给你提示了,用 any 或 all 去操作arr不要在遍历的过程中改变arr元素的值,效率太低 。

幕布斯6054654

有点看不懂您的问题.不过就单从代码来看.您代码中临时变量q,只会打印最后一次循环时的结果,应该是arr数组中最后一个元素与数字t的差值(若小于0,那么就0).最后,将原数组arr返回,注意是原数组,因为代码中并没有对原数组进行任何修改.就这个函数来说,是不会报错的.是否存在其他变量冲突或者其他问题?请多检查下吧
随时随地看视频慕课网APP

相关分类

Python
我要回答