как преобразовать объект pandas Series of Numpy в матрицу Numpy?

Мне трудно преобразовать серию pandas размером M, каждая из которых содержит массивы numpy, каждый из которых имеет размер N, в матрицу/массив numpy/кадр данных размером MxN

Пример:

import pandas as pd
import numpy as np
from scipy import stats
d = pd.DataFrame({'grp': np.random.randint(1, 10, 1000), 'x':np.random.rand(1000,)})
s = d.groupby('grp')['x'].apply(lambda x: stats.gaussian_kde(x.values, bw_method = .01).evaluate(np.linspace(0,1,100)))

Вывод, который я получаю, имеет тип Series, где тип записей — numpy.ndarray. Как преобразовать это в размер 10 (групп) умножить на 100 (оценочные ячейки)?


person Hanan Shteingart    schedule 23.10.2014    source источник


Ответы (1)


Вы можете использовать np.vstack для этого

sArray = np.vstack(s)

Но в вашем случае ваш Series равен (9 100). Если вы хотите сделать это (10 100), вам нужно изменить строку.

d = pd.DataFrame({'grp': np.random.randint(1, 10, 1000), 'x':np.random.rand(1000,)})

to

d = pd.DataFrame({'grp': np.random.randint(0, 10, 1000), 'x':np.random.rand(1000,)})

or

d = pd.DataFrame({'grp': np.random.randint(1, 11, 1000), 'x':np.random.rand(1000,)})

Не уверен, что ты хочешь там делать.

Ваше здоровье

person mrcl    schedule 23.10.2014