簡體   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