下面是代码:
import numpy as np
import pandas as pd
def correlation(x, y):
std_x = (x - x.mean())/x.std(ddof = 0)
std_y = (y - y.mean())/y.std(ddof = 0)
return (std_x * std_y).mean
a = pd.Series([2, 4, 5, 7, 9])
b = pd.Series([12, 10, 9, 7, 3])
ca = correlation(a, b)
print(ca)
它不返回相关值,而是返回一个序列,键为0 ,1, 2, 3, 4, 5
,值为-1.747504, -0.340844, -0.043282, -0.259691, -2.531987
。
请帮助我了解其背后的问题。
您需要致电mean()
:
return (std_x * std_y).mean()
不仅仅 :
return (std_x * std_y).mean:
它返回方法本身。完整代码:
import numpy as np
import pandas as pd
def correlation(x, y):
std_x = (x - x.mean())/x.std(ddof = 0)
std_y = (y - y.mean())/y.std(ddof = 0)
return (std_x * std_y).mean()
a = pd.Series([2, 4, 5, 7, 9])
b = pd.Series([12, 10, 9, 7, 3])
ca = correlation(a, b)
print(ca)
输出:
-0.984661667628
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句