Индексирование Python с помощью Numpy Array - PullRequest
0 голосов
/ 23 марта 2019

Я сгенерировал процентили из этого:

percentile = np.percentile(trace4['switchpoint'], [2.5, 97.5], axis=0)
print(percentile)

, который возвращает

 array([[0.83300568, 0.46060436, 2.7449003 , 1.9982139 , 0.3987762 ,
    0.88365135, 0.22983616, 0.93329534, 2.72465413, 1.17089865,
    0.28492142, 0.6926268 , 0.66269826, 1.06656515, 0.46752127,
    1.76456569, 0.1313388 , 1.28500029, 1.20987646, 1.45013769,
    1.37307323, 0.32541516, 0.93211006, 0.4211398 , 0.96974685,
    1.43363548, 2.14078899, 1.51663305, 1.0689224 , 0.79560975,
    1.63287055, 2.09162316, 0.2881392 , 1.55702871, 1.48598385,
    3.55837488, 0.74913963, 1.04578597, 0.26495597, 0.51574263],
   [4.75729175, 4.1623318 , 7.14900756, 5.12070075, 6.92330205,
    7.00824703, 4.87916471, 6.8439851 , 5.05501153, 5.80100506,
    6.91067095, 5.57056179, 5.7841482 , 5.83522249, 6.90924864,
    8.13130971, 5.07952595, 7.49020049, 6.74093273, 6.95862249,
    6.88121063, 6.52230737, 6.84559638, 6.03093124, 7.11098186,
    6.11971399, 4.80683008, 5.82910868, 7.44122   , 7.82238211,
    5.64118377, 5.91967593, 7.18480546, 4.98052415, 5.04198767,
    4.22506871, 6.60798525, 6.4482244 , 5.92934079, 6.76150973]])

Однако я хотел бы сопоставить его с моим индексом, как в "индивидуальный_идентификатор", который имеет ту же длину. Я пытался использовать

 pd.Series(percentile, index='individual_id') 

, но это не работает и возвращает сообщение об ошибке с

 "Exception: Data must be 1-dimensional". 

Кто-нибудь может помочь? большое спасибо!

Ответы [ 2 ]

2 голосов
/ 23 марта 2019

percentile - это двумерный массив.Попробуйте:

pd.Series(percentile[0], index=‘individual_id’)

Немного лишней хрени, так как я должен написать ответ большей длины, чем необходимо для ответа на заданный вопрос.На этом сайте есть несколько глупых правил, помогающих людям решать проблемы с кодированием.

0 голосов
/ 23 марта 2019

Я согласен с ответом Этана, чтобы решить вашу ошибку.

но, просто взяв данные по процентилю [0], вы потеряете данные процентиля из trace4 ['switchpoint'] для вашего второго значения в [2.5, 97.5].

Поэтому вместо этого попробуйте изменить [2.5, 97.5] на одно значение или просто взять среднее значение. проанализируйте, зачем вам это 2,5 или 97,5.

так что вы можете попробовать что-то вроде этого:

процентиль = np.percentile (trace4 ['точка переключения'], 50, ось = 0)

pd.Series (процентиль, индекс = 'индивидуальный_идентификатор')

Я не говорю, что ты сделал неправильно. Но бессмысленно генерировать два значения и использовать одно.

Надеюсь, это поможет;)

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