繁体   English   中英

嵌套的for循环将两个列表乘以两个变量python 3

[英]Nested for loop to multiply two lists by two variables python 3

我将CSV文件导入Python,然后使用x和y值执行最小二乘回归。 到目前为止,我的程序是:

  • 打开CSV文件并以逗号分隔
  • 创建两个由X和Y组成的列表(分别为x_list和y_list)
  • 计算所有X值的平均值,并对所有Y值(分别为x_avg和y_avg)执行相同的操作

我在查找斜率分子时遇到了麻烦:

sum((Xi-X avg)*(Yi-Y avg))

我正在使用嵌套的for循环,但返回的m_num(斜率分子)结果不正确。

def compute_numerator(x_list, y_list, x_avg, y_avg):
    m_num = 0                                                                                                                                 
    xi = []
    yi = []
    multiples = []
    xi = [(x - x_avg) for x in x_list]
    yi = [(y - y_avg) for y in y_list]
    for x in xi:
        for y in yi:
            multiples = [x * y]
    m_num = sum(multiples)
    print(m_num)
    return m_num

我需要m_num返回(X-X的平均值)*(Y-Y的平均值)所有值的总和

任何建议或批评欢迎! 尝试学习并养成良好的编程习惯。 谢谢你的时间!

如果希望x_listy_list每个(x,y)值y_list配对,则可以这样做:

sum((x-x_avg)*(y-y_avg) for x, y in zip(x_list, y_list))

您的问题是您没有将它们配对,而是让每个x值总和与所有y值,如下所示:

sum((x-x_avg)*(y-y_avg) for x, y in x_list for y in y_list)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM