【发布时间】:2017-02-25 14:33:19
【问题描述】:
epsData 是一个由Dates 和StockID 组成的二维数组。
为了简单起见,我取出了一些代码。
代码调用函数Generate和neweps,epsData被引擎传递。我不确定为什么当我尝试将数组 epsss 传递给 SUE() 函数时会出错。
我尝试使用 flatten 函数删除数组中多余的括号(如果有的话),但这没有帮助。
SUE() 应该遍历数组并找到倒数第四个不同的值,然后将它们存储在数组中。
我收到此错误:
TypeError: return arrays must be of ArrayType
下面标出三行:
def lastdifferentvalue(vals,datas,i):
sizes=len(datas)
j=sizes-1
values=0
while (i>0) and (j>=0):
if logical_and((vals-datas[j]!=0),(datas[j]!=0),(datas[j-1]!=0)): # !! HERE !!
i=i-1
values=datas[j-1]
j=j-1
return j, values
def SUE(datas):
sizes=len(datas)
j=sizes-1
values=0
sues=zeros(8)
eps1=datas[j]
i=7
while (j>0) and (i>=0) :
counts, eps2=lastdifferentvalue(eps1,array(datas[0:j]),4)
if eps2!=0:
sues[i]=eps1-eps2
i=i-1
j,eps1=lastdifferentvalue(eps1,datas[0:j],1) # !! HERE !!
stddev=std(SUE)
sue7=SUE[7]
return stddev,sue7
def Generate(di,alpha):
#the code below loops through the data. neweps is a two dimensional array of floats [dates, stockid]
for ii in range(0,len(alpha)):
if (epss[2,ii]-epss[1,ii]!=0) and (epss[2,ii]!=0) and (epss[1,ii]!=0):
predata=0
epsss= neweps[di-delay-250:di-delay+1,ii]
stddevs,suedata= SUE(array(epsss.flatten())) # !! HERE !!
【问题讨论】:
-
我可以在该错误的开头和结尾处有“**”的三行。非常感谢
-
请阅读“minimal reproducible example”。我们需要演示问题的minimum 程序,以及支持输入和所需输出。将代码减少到最小但仍然重复问题的过程通常表明问题是什么。
-
加粗在代码块中不起作用 - 我将其更新为注释,以便可以运行代码。根据需要进行调整。
-
我已经编辑了代码并试图总结它。一些数据从引擎传递到这里。请你能帮我看看可能是什么问题吗?非常感谢
-
大家好,任何人都可以看看我的问题。非常感谢!
标签: python numpy multidimensional-array typeerror