
Вертикальное объединение массивов — это еще одна распространенная задача при работе с данными в NumPy. Функция np.vstack() предоставляет элегантный и простой метод для этой цели. Давайте рассмотрим её подробнее.
numpy.vstack(tup)tup: кортеж из массивов, которые вы хотите вертикально объединить.Объединение одномерных массивов:
 Два одномерных массива будут объединены как две строки в результирующем двумерном массиве.
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
result = np.vstack((arr1, arr2))
print(result)
# [[1 2 3]
#  [4 5 6]]Объединение двумерных массивов:
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6]])
result = np.vstack((arr1, arr2))
print(result)
# [[1 2]
#  [3 4]
#  [5 6]]np.hstack().np.concatenate().Использование вертикального объединения для добавления строк к данным.
 Предположим, у вас есть массив данных, и вы хотите добавить к нему дополнительные строки:
data = np.array([[1, 2, 3], [4, 5, 6]])
new_rows = np.array([[7, 8, 9], [10, 11, 12]])
augmented_data = np.vstack((data, new_rows))
print(augmented_data)
# [[ 1  2  3]
#  [ 4  5  6]
#  [ 7  8  9]
#  [10 11 12]]Объединение одномерного и двумерного массивов.
 При объединении одномерного массива с двумерным, одномерный массив интерпретируется как строка:
arr1 = np.array([1, 2, 3])
arr2 = np.array([[4, 5, 6], [7, 8, 9]])
result = np.vstack((arr1, arr2))
print(result)
# [[1 2 3]
#  [4 5 6]
#  [7 8 9]]Во время работы с np.vstack() можно столкнуться с ошибками, особенно если массивы имеют разные размерности или формы. Например:
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([[7, 8]])
try:
    result = np.vstack((arr1, arr2))
    print(result)
except ValueError as e:
    print(f"Ошибка: {e}")
# Ошибка: all the input array dimensions for the concatenation axis must match exactly, but along dimension 1, the array at index 0 has size 3 and the array at index 1 has size 2Здесь мы использовали блок try-except, чтобы перехватить и показать возникающую ошибку. Если вы столкнетесь с подобной проблемой, убедитесь, что ваши массивы имеют подходящую форму для вертикального соединения.
Если вы работаете с большим количеством массивов и хотите соединить их все сразу, можно использовать распаковку списка:
arrays = [np.array([i, i+1, i+2]) for i in range(0, 10, 3)]
result = np.vstack(arrays)
print(result)
#[[ 0  1  2]
# [ 3  4  5]
# [ 6  7  8]
# [ 9 10 11]]Это особенно полезно, когда вы не знаете точное количество массивов заранее или когда их много и вам не хочется вручную перечислять каждый из них.
Функция np.vstack() - это мощный инструмент для вертикального объединения массивов в NumPy. Она предоставляет простой способ структурирования данных, позволяя легко добавлять новые строки к вашему массиву. Эта функция является основой при манипуляциях с данными, особенно когда требуется объединять разные источники информации в одном массиве.
Содержание: