Объединить значения массивов по оси в соответствии с их суммой - PullRequest
0 голосов
/ 08 октября 2018

Допустим, у меня есть огромный двумерный массив, схематично выглядящий так:

test = np.array([[0.1, 0.3, 0.5, 0.2, 5., np.nan, np.nan],
          [2., 0.8, 0.1, 3., 2.5, 0.9, np.nan]])

Поскольку он огромен, я хочу объединить записи вдоль оси, но их сумма должна быть как минимум больше определеннойзначение, скажем, 1 в этом случае.Объединенная запись должна иметь самый низкий индекс из объединенной группы записей, а остальная часть должна быть заполнена NaN:

np.array([[1.1, 5., np.nan, np.nan, np.nan, np.nan, np.nan],
          [2.9, 3., 3.4, np.nan, np.nan, np.nan, np.nan]])

Я знаю, что это как-то возможно, просматривая одно измерение массива, назначая индексы списку, порог, слияние, а затем заполнение, но это кажется мне довольно сложным.Я пытался также использовать np.apply_along_axis с чем-то вроде этого:

digi = np.digitize(test[0], np.arange(0, np.nanmax(test[0]), 0.05), right=True)
np.bincount(digi, weights=test[0])

в соответствии с ответами здесь и здесь , но результат также просто слабо связан счто я хочу.Есть ли более простой способ сформулировать это?

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