October 19, 2022

Ключевые способы объединения данных в NumPy

Если злые люди объединяются для злого, то тем более добрые должны объединиться для добрых дел (Евгений Антонюк).

Рассмотрим основные способы конкатенации данных в NumPy. Сначала создадим демонстрационные наборы:

import numpy as np

a = np.arange(5)
b = np.arange(10).reshape(5,2)
c = np.arange(10).reshape(2,5)
b

Для объединения вдоль горизонтальной оси можно использовать column_stack. При этом функция сама позаботится о добавлении размерности, чтобы выровнять данные, если нужно:

np.column_stack((a,b))

Аналогичную задачу решает hstack, однако размерность наборов должна совпадать. Поэтому, чтобы отработал тот же пример следует делать так:

np.hstack((a.reshape(-1,1),b))

Объединение вдоль вертикальной оси решают схожие функции row_stack и vstack:

np.row_stack((c,a))
np.vstack((c,a))

Обе эти задачи можно решить с помощью одной функции concatenate. Разница заключается в задании оси конкатенации:

np.concatenate((a.reshape(-1,1),b),1)
np.concatenate((c,a.reshape(1,-1)),0)