Вычисление условных медиан массива numpy - PullRequest
0 голосов
/ 25 мая 2020

У меня есть numpy массив X формы

[ A 1 a1 ]
[ A 2 a2 ]
[ A 3 a3 ]
[ B 1 b1 ]
[ B 2 b2 ]
[ B 3 b3 ]
[ B 4 b4 ]
[ C 1 c1 ]
[ C 2 c2 ]
[ C 3 c3 ]
[ C 4 c4 ]
[ C 5 c5 ]

, где

  • (A, B, C) соответствуют различным настройкам эксперимента,
  • (1, 2, 3, ...) соответствуют независимым повторениям эксперимента, а
  • (a1, b2, et c.) Соответствуют измерениям, выполненным при каждой повторности

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

[ A median(a1, a2, a3) ]
[ B median(b1, b2, b3, b4) ]
[ C median(c1, c2, c3, c4, c5) ]

Я хотел бы сделать это без необходимо указать

i) сколько было разных экспериментальных установок и

ii) сколько было выполнено повторений каждого эксперимента.

Я подозреваю, что это должно быть быть возможно с какой-то маскировкой, например, что-то вроде median (X [:, 2] такое, что X [:, 0] = a), каким-то образом повторяя a, но я не уверен в синтаксисе для этого .

1 Ответ

1 голос
/ 25 мая 2020
import numpy as np

experiments = np.unique(X[:,0])
medians = []
for experiment in experiments:
    l = [experiment]
    l.append(np.median(X[X[:,0]==experiment, 2]))
    medians.append(l)
medians = np.array(medians)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...