首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写自定义函数乘以x,y的平均值

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

Stack Overflow用户
提问于 2018-12-10 12:52:52
回答 2查看 58关注 0票数 1

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

代码语言:javascript
复制
x=[17,13,12,15,16,14,16,16,18,19]
y=[94,73,59,80,93,85,66,79,77,91]

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

这段代码我试图实现这个功能,但无法获得预期的输出。如果有什么帮助

代码语言:javascript
复制
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))

期望产出:

代码语言:javascript
复制
20.02
17.42
74.52
-0.18
5.32
-5.48
-0.28
-6.48
38.42
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-10 13:23:07

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

代码语言:javascript
复制
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)赋值‘Resulx1=result’,什么也不做,跳过它

票数 1
EN

Stack Overflow用户

发布于 2018-12-10 13:06:12

您确实应该将NumPy用于以下内容:

代码语言:javascript
复制
import numpy as np

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

(x - np.mean(x)) * (y - np.mean(y))
# array([20.02, 17.42, 74.52, -0.18,  5.32, -8.48, -5.48, -0.28, -6.48, 38.42])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53706076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档