2015-01-13 2 views
10

Есть ли способ сделать что-то вроде merge in mergesort, используя функцию numpy?numpy объединить отсортированный массив в новый массив?

некоторые функции, как слияния:

a = np.array([1,3,5]) 
b = np.array([2,4,6]) 
c = merge(a, b) # c == np.array([1,2,3,4,5,6]) 

Я хотел бы получить высокую производительность для больших объемов данных благодаря Numpy

+0

Взгляните на этот ответ, который дает очень эффективное решение: http://stackoverflow.com/a/12427633/58866 – Imran

+0

Возможный дубликат [объединить два массива и сортировку] (http://stackoverflow.com/questions/12427146/comb-two-arrays-and-sort) – Imran

+0

Вы хотите только конкатенацию или сортировку? –

ответ

8

Вы можете использовать

c = concatenate((a,b)) 
c.sort(kind='mergesort') 

Я боюсь, что вы не можете лучше, чем это, если вы не напишете свою собственную функцию сортировки как расширение python, à la cython.

См. Вопрос this для аналогичной проблемы, но сохраняя только уникальные значения в объединенном массиве. Оценки и комментарии там также проницательны.

+1

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

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