Функция vstack
Функция vstack объединяет переданные массивы вдоль первой оси (по вертикали).
Она принимает последовательность массивов и возвращает новый массив,
в котором входные массивы расположены друг над другом.
Все массивы должны иметь одинаковое количество столбцов (одинаковую форму по всем осям, кроме первой).
Синтаксис
np.vstack(tup)
Параметр tup - это последовательность массивов, кортеж или список массивов,
которые нужно объединить по вертикали.
Пример
Объединим два одномерных массива одинаковой длины:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
res = np.vstack((arr1, arr2))
print(res)
Результат выполнения кода:
[[1 2 3]
[4 5 6]]
Одномерные массивы интерпретируются как строки, поэтому результатом становится двумерный массив.
Пример
Объединим два двумерных массива с одинаковым числом столбцов:
import numpy as np
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([[7, 8, 9], [10, 11, 12]])
res = np.vstack((arr1, arr2))
print(res)
Результат выполнения кода:
[[ 1 2 3]
[ 4 5 6]
[ 7 8 9]
[10 11 12]]
Количество строк увеличивается, а количество столбцов остаётся неизменным.
Пример
Объединим одномерный массив с двумерным. Одномерный массив будет преобразован в строку:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([[4, 5, 6], [7, 8, 9]])
res = np.vstack((arr1, arr2))
print(res)
Результат выполнения кода:
[[1 2 3]
[4 5 6]
[7 8 9]]
Одномерный массив arr1 автоматически преобразуется в строку (массив формы (1, 3)),
после чего объединение становится возможным.
Пример
Попытка объединить массивы с разным числом столбцов приведёт к ошибке:
import numpy as np
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([[7, 8], [9, 10]])
try:
res = np.vstack((arr1, arr2))
except ValueError as e:
print("Error:", e)
Результат выполнения кода:
"Error: all the input array dimensions except for the concatenation axis must match exactly"
Чтобы избежать ошибки, необходимо убедиться, что все массивы имеют одинаковое количество столбцов.
Смотрите также
-
функцию
hstack,
которая объединяет массивы по горизонтали (по столбцам) -
функцию
concatenate,
которая объединяет массивы по заданной оси -
функцию
stack,
которая объединяет массивы по новой оси -
функцию
dstack,
которая объединяет массивы по третьей оси (глубине)