Как преобразовать серию в массив Numpy? - PullRequest
0 голосов
/ 25 октября 2019

Я импортирую CSV-файл в массив данных и получил серию, подобную этой:

In[1]:   A = df["data1"]
         B = df["data2"]
       type(A)
Out[1]:  pandas.core.series.Series

Я делаю такой модуль Pearson

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, и он возвращает метод, а не массив NUMP. Как я получил массив NUMPY из Series?

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

Ответы [ 2 ]

1 голос
/ 25 октября 2019

Как преобразовать серию в простой массив?

Использовать values:

series = pd.Series([1, 2, 3], name="a")
series.values
# => array([1, 2, 3])
0 голосов
/ 25 октября 2019

измените код на:

An=A.as_matrix() ... вы должны вызвать метод, чтобы он выполнял свою функцию над сериями панд

, как упоминал @Mad Physicistвы можете использовать серию панд вместо массива np большую часть времени в любом случае

вы также можете сделать

An = A.values

Я считаю, что as_matrix будет заменен значениями в будущей версии панд

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...