Вертикальное объединение массивов — это еще одна распространенная задача при работе с данными в 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. Она предоставляет простой способ структурирования данных, позволяя легко добавлять новые строки к вашему массиву. Эта функция является основой при манипуляциях с данными, особенно когда требуется объединять разные источники информации в одном массиве.
Содержание: