python 中两个嵌套 for 循环的结果保存列表的正确位置是什么?

迭代必须从p =1 开始,然后,第二个 for 循环必须对r范围内的所有值求和。第二次循环完成后,我想将结果保存在列表的第一个元素(ap)中。然后,p = 2并且重复该过程,并且a的新值必须将其保存在列表ap的第二个元素中...依此类推


我正在尝试使用一个数据框,我已经知道结果会是什么,这就是为什么我知道我的代码正在做另一件不同的事情。我猜ap列表的位置不正确?我是否必须尝试使用 pandas 中的 Series 或使用 Numpy 的数组?


感谢您的帮助


 m=12

    n=6

    ap=[]

    

    for p in range(1,n):

        for r in range(-n,n):

            a = a + (1/n)*((data3.loc[r].iat[1])*(np.cos((2*(np.pi)*p*r)/m)))

            ap  += [a]    

            #?

            #?


胡说叔叔
浏览 80回答 1
1回答

犯罪嫌疑人X

我们可以使用函数和生成器表达式重新组织您的代码,使其更加整洁。另外你的公式似乎有一堆不必要的括号。m = 12n = 6ap = []def calculate(p, r):    return (1/n) * data3.loc[r].iat[1] * np.cos(2*np.pi * p * r) / mfor p in range(1, n):    a = sum(calculate(p, r) for r in range(-n, n))    ap.append(a)这将创建一个ap长度列表n-1
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python