首页 > 解决方案 > 编写自定义函数乘以 x,y 的平均值

问题描述

编写自定义函数乘以 x,y 的平均值

x=[17,13,12,15,16,14,16,16,18,19]
y=[94,73,59,80,93,85,66,79,77,91]

我有两个列表,我想计算它的平均值。得到两个平均值后,我想相乘

此代码我试图实现此功能但无法获得预期的输出。如果有任何帮助表示赞赏

def X_bar_y_bar(x,y):
    x1=[]
    y1=[]
    ab=[]
    for i in x:
        result_x1=i-sum(x)/float(len(x))
        result_x1=result_x
        x1.append(result_x1)

    for k in y:
        result_y1=k-sum(y)/float(len(y))
        result_y1=result_y
        y1.append(result_y1)
    total=0
    for i in x1:
        for j in y1:
            r1=i*j
            total = +r1
            print("{:.2f}".format(total))

期望的输出:

20.02
17.42
74.52
-0.18
5.32
-5.48
-0.28
-6.48
38.42

标签: pythonpython-3.x

解决方案


如果您不必使用“numpy”,则可以使用以下代码:

x=[17,13,12,15,16,14,16,16,18,19]
y=[94,73,59,80,93,85,66,79,77,91]

def X_bar_y_bar(x,y):
    xave = sum(x)/float(len(x))
    yave = sum(y)/float(len(y))

    for i in range(len(x)):
        result=((x[i]-xave)*(y[i]-yave))
        print("{:.2f}".format(result))

X_bar_y_bar(x,y)

与您的代码相比,几乎没有什么变化:

1)平均值计算一次,你应该把它带出循环 2)赋值,'result_x1=result_x',没有做任何事情,跳过那个


推荐阅读