首页 > 解决方案 > Numpy.arange:ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()

问题描述

这是代码中定义 current_pat 的地方。

    current_idx = idx[-6:]

    current_pat = price[current_idx]

    XA = current_pat[1] - current_pat[0]
    AB = current_pat[2] - current_pat[1]
    BC = current_pat[3] - current_pat[2]
    CD = current_pat[4] - current_pat[3]

    XD = np.arange(current_pat[0],current_pat[4])
    AC = np.arange(current_pat[1],current_pat[3])

    XD_range = np.array([np.mean(XD,dtype=int) - err_allowedHAS, np.mean(XD,dtype=int) + err_allowedHAS])
    AC_range = np.array([np.mean(AC,dtype=int) - err_allowedHAS, np.mean(AC,dtype=int) + err_allowedHAS])

这是我的错误。老实说,我不确定为什么会这样

  File "C:\Users\Owner\Desktop\TradingAlgorithm\TraditionalFunctions.py", line 30, in isHeadAndShoulders
    XD = np.arange(current_pat[0],current_pat[4])
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

标签: pythonnumpy

解决方案


从您的错误消息中,我假设一个或两个对象current_pat[0]/current_pat[4]不是数字。Print(current_pat[0], current_pat[4])找出这些对象中哪些不是数字。由于您没有提供代码来生成产生错误的对象,我们无法提供任何更具体的帮助来解决您的问题。的文档np.arange()解释了函数期望的参数。


推荐阅读