Python2.7如何从从Polyfi接收的列表中获取所有残差

2024-06-28 15:00:59 发布

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

目前我有大数组(1051个元素)用于x、y和z。 我的目标是拟合x,y,z各自->;t(时间=1051)的最佳多项式函数,步长为10。在

为了找出最佳拟合度,我给polyfit方法参数full=True。所以我得到了最小二乘拟合的残差。我将polyfit的所有结果保存在一个名为fkt=[]的列表中。在

我现在的问题是我只想提取这个列表中条目的残差。我试过了 residuals = np.array(fkt[:][1][0])结果只有两个值。 不过,下流社会似乎是对的!因为其中一个值是第一个元素的余数。在

我现在的问题是:我是否必须迭代抛出列表以获得所有残差,或者是否有人建议我如何使用np.数组而不是单子??在

PS:Fkt列表说明

  1. 第一个索引[]:polyfit的不同拟合/结果!1051年10月= 105个条目
  2. 第二个索引[]:0=多项式的系数 函数,1=残差和co(奖金信息,完整=真)
  3. 第三个指数[]:0=残差

    x = rKnee[:,0,3]        #x-coordinate of the Translation
    y = rKnee[:,1,3]        #y-coordinate of the Translation
    z = rKnee[:,2,3]        #z-coordinate of the Translation
    
    pos = 0
    deg = 1                 #Number of Polynominals to be fit
    n = x.size
    t = np.arange(n)   #creates an Array for the Time t
    fkt = []
    
    while pos < n:
        fkt.append(np.polynomial.polynomial.polyfit(t[pos:(pos+steps)],x[pos:(pos+steps)],deg,full=True))
        pos += steps
    residuals = np.array(fkt[:][1][0])
    print residuals
    if __name__ == "__main__":
        computeSegmentation()
    

{105已经可以得到所有的残差信息了 ^{105的元素看起来像是一个数组

[ [array([ 0.00431193]), 2, array([ 1.35754456, 0.39632407]), 2.2204460492503131e-15]

[array([ 0.07957901]), 2, array([ 1.40745857, 0.13805929]), 2.2204460492503131e-15]

但是我只需要列表的第一个条目(剩余部分)


Tags: ofthepos元素coordinate列表np数组
1条回答
网友
1楼 · 发布于 2024-06-28 15:00:59

我找到了一个解决方案:

    while pos < n:
    coeff,bonus = np.polynomial.polynomial.polyfit(t[pos:(pos+steps)],mag[pos:(pos+steps)],deg,full=True)
    fkt.append(coeff)
    res.append(bonus[0])
    pos += steps
print res

只给我在polyfit full=True中获得的奖金信息的第一个条目

相关问题 更多 >