2013-12-23 5 views
0

Учитывая мой массивПолучение медиана multidemensional массива разной длины

x = numpy.array([[1.0,2.0,3.0],[10.0,20.0,30.0]]) 

я мог бы получить медиану каждого элемента легко с

np.median(x, axis=0) 

#output: array([ 2., 20.]) 

Но я не могу сделать то же самое, когда я увеличить длина одного массива

x = numpy.array([[1.0,2.0,3.0],[10.0,20.0,30.0, 40.0]]) 

вывод должен быть массив ([2, 25])

Есть ли способ получить медиану для такого массива?

ответ

3
[np.median(i) for i in x] 

Поскольку Лист имеет неодинаковую длину вы не можете транслировать их. Вот почему первая работа, но не вторая.

В первом случае ваши два списка будут переданы в массив 3x2, где медиана вдоль оси имеет смысл. Теперь два списка неравной длины не могут транслироваться таким образом.

0

На самом деле у вас нет массива чисел, но массив списков. Таким образом, медиана не имеет смысла. Вы должны перебирать списки и вычислить медианы по одному

Смежные вопросы