У меня есть numpy ndarray с формой (30,480,640), 1-я и 2-я оси, представляющие местоположения (широта и длинная), 0-я ось содержит фактические точки данных. Я хочу использовать наиболее частое значение вдоль 0-й оси на каждом местоположение, которое должно построить новый массив с формой (1,480,640).ie:
>>> data
array([[[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]],
[[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]],
[[40, 40, 42, 43, 44],
[45, 46, 47, 48, 49],
[50, 51, 52, 53, 54],
[55, 56, 57, 58, 59]]])
(perform calculation)
>>> new_data
array([[[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]]])
Точки данных будут содержать отрицательные и положительные числа с плавающей запятой. Как я могу выполнить такие вычисления? Большое спасибо!
Я попытался с numpy.unique, но я получил "TypeError: unique() получил неожиданный аргумент ключевого слова" return_inverse ". Я использую numpy version 1.2.1, установленный в Unix, и он не поддерживает return_inverse. Я также попробовал режим, но на ведение такого большого объема данных требуется вечность... так есть ли альтернативный способ получить самые частые значения? Еще раз спасибо.