#python #numpy #concatenation #numpy-ndarray
#python #numpy #конкатенация #numpy-ndarray
Вопрос:
Допустим, у меня есть два массива [1, 3, 5] и [2, 4, 6], каков наилучший способ их объединения, чтобы получить [1, 2, 3, 4, 5, 6] без использования циклов или рекурсии и просто numpy?
Ответ №1:
Поскольку вы отметили numpy
:
np.array((a,b)).T.ravel()
или когда a,b
могут быть разного размера:
np.array(list(zip(a,b))).ravel()
Вывод:
array([1, 2, 3, 4, 5, 6])
Ответ №2:
a = [1, 3, 5]
b = [2, 4, 6]
sorted([*a, *b])
Вывод:
[1, 2, 3, 4, 5, 6]
Ответ №3:
Вы можете сделать это без numpy
:
Просто добавьте их, a = [1,3,5] [2,4,6]
а затем отсортируйте sorted(a)
Комментарии:
1. Я думаю, что OP хочет создать список или массив чередующихся значений из каждого из входных списков, а не способ их сортировки.
2. Я также понял это таким образом
Ответ №4:
В чистом python вы можете использовать
import itertools
list(itertools.chain(*zip(array1, array2)))
Ответ №5:
Вы также можете использовать понимание списка:
[x for t in zip(a,b) for x in t]
Обратите внимание, что это эквивалентно явным циклам в том же порядке
out = []
for t in zip(a,b):
for x in t:
out.append(x)