如何将一系列序列转换为numpy数组?

问题描述 投票:0回答:2

我将一个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数组,并且它返回的是mthod而不是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
python numpy
2个回答
1
投票

如何将系列转换为numpy数组?

使用values

values

0
投票

将代码更改为:

[series = pd.Series([1, 2, 3], name="a") series.values # => array([1, 2, 3]) ...您必须调用该方法才能使其在熊猫系列上执行其功能]

正如@Mad Physicist所述,无论如何,您大多数时候都可以使用熊猫系列代替np阵列

您也可以这样做

An=A.as_matrix()

我相信as_matrix将在未来版本的熊猫中替换为值

© www.soinside.com 2019 - 2024. All rights reserved.