NumPy: горизонтальное объединение массивов

Горизонтальное объединение массивов с помощью np.hstack() в NumPy

Объединение массивов – стандартная задача, стоящая перед пользователями NumPy. Одним из методов объединения является горизонтальное объединение с помощью функции np.hstack(). В этой статье мы подробно рассмотрим, как она работает, её синтаксис и применение на практике.

Синтаксис

numpy.hstack(tup)
  • tup: кортеж из массивов, которые необходимо горизонтально объединить.

Примеры использования

Объединение одномерных массивов

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
result = np.hstack((arr1, arr2))
print(result)  # [1 2 3 4 5 6]

Объединение двумерных массивов

arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6]])
result = np.hstack((arr1, arr2.T))  # Примечание: Транспонирование arr2 для соответствия формам массивов
print(result)
# [[1 2 5]
#  [3 4 6]]

Особенности функции np.hstack()

  • Для успешного объединения массивов они должны иметь одинаковое количество строк.
  • Если вам нужно объединить массивы вертикально, используйте функцию np.vstack().
  • Для более сложных случаев объединения, когда вы хотите указать ось, вдоль которой производить объединение, можно использовать функцию np.concatenate().

Практические советы

Использование горизонтального объединения для добавления столбцов к данным.
Предположим, у вас есть массив данных и вы хотите добавить к нему столбец с единицами (часто используется в статистическом моделировании):

data = np.random.rand(5, 3)
ones = np.ones(5)
augmented_data = np.hstack((data, ones[:, np.newaxis]))
print(augmented_data)

#[[0.46656957 0.25387216 0.58987167 1.        ]
# [0.88559928 0.50996955 0.50822401 1.        ]
# [0.32744819 0.43623309 0.8788719  1.        ]
# [0.6266868  0.39226749 0.34963444 1.        ]
# [0.14550124 0.3698667  0.34561095 1.        ]]

Объединение массивов разных типов.
np.hstack() позволяет объединять массивы разных типов данных. Результатом будет массив, который может содержать все входные типы данных:

arr1 = np.array([1, 2, 3])
arr2 = np.array([4.0, 5.5, 6.6])
result = np.hstack((arr1, arr2))
print(result)  # [1.  2.  3.  4.  5.5 6.6]

Заключение

Функция np.hstack() предоставляет простой и интуитивно понятный способ горизонтального объединения массивов в NumPy. Она оказывается очень полезной при работе с данными, когда необходимо комбинировать различные наборы информации в одной структуре.

Содержание: