我将一个csv导入到数据框中,并得到了这样的系列:
In[1]: A = df["data1"]
B = df["data2"]
type(A)
Out[1]: pandas.core.series.Series
我制作了这样的皮尔逊模块
def pearson(vector1, vector2):
n = len(vector1)
# simple sums
sum1 = sum(float(vector1[i]) for i in range(n))
sum2 = sum(float(vector2[i]) for i in range(n))
# sum up the squares
sum1_pow = sum([pow(v, 2.0) for v in vector1])
sum2_pow = sum([pow(v, 2.0) for v in vector2])
# sum up the products
p_sum = sum([vector1[i] * vector2[i] for i in range(n)])
num = p_sum - (sum1*sum2/n)
den =((sum1_pow-pow(sum1, 2)/n) * (sum2_pow-pow(sum2, 2)/n)) ** 0.5
if den == 0:
return 0.0
return num/den
我想使用as_matrix将系列转换为numpy数组,它返回一个不是numpy数组的方法,我如何从numpy数组中获取 系列?
from modulas import pearson1
import numpy as np
An = A.as_matrix
Bn = B.as_matrix
p = pearson(An, Bn)
TypeError: 'module' object is not callable
答案 0 :(得分:1)
如何将一系列秘密转换为numpy数组?
使用values
:
series = pd.Series([1, 2, 3], name="a")
series.values
# => array([1, 2, 3])
答案 1 :(得分:0)
将代码更改为:
An=A.as_matrix()
...您必须调用该方法才能使其在熊猫系列上执行其功能
正如@Mad Physicist提到的,无论如何,您大部分时间都可以使用pandas系列代替np阵列
您也可以
An = A.values
我相信as_matrix将在未来的熊猫版本中替换为值