TypeError:返回数组必须是ArrayTyp

2024-06-15 11:24:35 发布

您现在位置:Python中文网/ 问答频道 /正文

epsData是由Dates和{}组成的二维数组。在

为了简单起见,我去掉了一些代码。在

代码调用函数GeneratenewepsepsData由引擎传递。当我试图将数组epsss传递给SUE()函数时,我不确定它为什么会出错。在

我试图使用flatten函数删除数组中多余的括号(如果有的话),但这没用。在

SUE()应该在数组中循环,找到最后第四个不同的值,然后将这些值存储在数组中。在

我得到这个错误:

TypeError: return arrays must be of ArrayType

三行标记如下:

^{pr2}$

Tags: 函数代码引擎错误数组generate括号dates
2条回答

假设您使用的是^{},其形式是

np.logical_and(a, b, c)

意思是你想取三者的逻辑和。但是,如果你检查文档,它就不会这样做。它将c解释为要存储结果的数组。在

你可能是说这里有点像

^{pr2}$

行:

if logical_and((vals-datas[j]!=0),(datas[j]!=0),(datas[j-1]!=0))

有两个错误:

  1. 大概你想对(vals-datas[j] != 0)(datas[j] != 0)(datas[j-1] != 0)执行logical_and。然而numpy.logical_and只接受两个输入参数,第三个if传递的参数被假定为一个输出数组。因此,如果希望对三个数组进行numpy.logical_and操作,则应将其表示为:

    ^{2美元
  2. 无论如何,在if语句中使用logical_and是没有意义的。它返回一个数组,而数组没有一个真值。也就是说,一个logical_and的结果是一个布尔数组,其中一些是真的,有些是假的。你想检查他们是否都是真的吗?或者至少有一些是真的?在

    如果是前者,则应测试为:

    if numpy.all(logical_and(...)):
       ...
    

    如果后者测试为:

    if numpy.any(logical_and(...)):
       ...
    

相关问题 更多 >