РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
39 of 541 menu

Функция hstack

Функция hstack (от horizontal stack) выполняет горизонтальное объединение массивов, присоединяя их друг к другу вдоль второй оси (по столбцам). Для одномерных массивов она объединяет их в один длинный одномерный массив. Для двумерных массивов важно, чтобы количество строк у всех объединяемых массивов совпадало. Функция принимает кортеж или список массивов в качестве первого параметра и возвращает новый массив, содержащий все данные в горизонтальном порядке.

Синтаксис

np.hstack(tup)

Параметры:

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

Возвращаемое значение - новый массив ndarray, являющийся результатом горизонтальной конкатенации.

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

Создадим два одномерных массива и объединим их с помощью hstack:

import numpy as np arr1 = np.array([1, 2, 3, 4, 5]) arr2 = np.array([6, 7, 8, 9, 10]) res = np.hstack((arr1, arr2)) print(res)

Результат выполнения кода:

[ 1 2 3 4 5 6 7 8 9 10]

Одномерные массивы просто склеиваются в один более длинный массив.

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

Создадим два двумерных массива с одинаковым количеством строк и объединим их по горизонтали:

import numpy as np arr1 = np.array([[1, 2, 3], [4, 5, 6]]) arr2 = np.array([[7, 8], [9, 10]]) res = np.hstack((arr1, arr2)) print(res)

Результат выполнения кода:

[[ 1 2 3 7 8] [ 4 5 6 9 10]]

Второй массив был добавлен справа к первому, количество строк сохранилось, а столбцы объединились.

Пример с тремя массивами

Объединим три двумерных массива, чтобы увидеть, как они выстраиваются в ряд:

import numpy as np arr1 = np.array([[1, 2], [3, 4]]) arr2 = np.array([[5, 6, 7], [8, 9, 10]]) arr3 = np.array([[11], [12]]) res = np.hstack((arr1, arr2, arr3)) print(res)

Результат выполнения кода:

[[ 1 2 5 6 7 11] [ 3 4 8 9 10 12]]

Все три массива были объединены в один по горизонтали, при этом их строки остались на тех же местах.

Пример с изменением формы перед объединением

Иногда требуется изменить форму массивов перед объединением. Например, превратим одномерный массив в двумерный столбец и объединим:

import numpy as np arr1 = np.array([1, 2, 3, 4, 5]) arr2 = np.array([6, 7, 8, 9, 10]) # Преобразуем в столбцы (двумерные массивы с одним столбцом) col1 = arr1.reshape(-1, 1) col2 = arr2.reshape(-1, 1) res = np.hstack((col1, col2)) print(res)

Результат выполнения кода:

[[ 1 6] [ 2 7] [ 3 8] [ 4 9] [ 5 10]]

Теперь мы получили двумерный массив, где каждый столбец соответствует одному из исходных массивов.

Смотрите также

  • функцию vstack,
    которая объединяет массивы по вертикали (по строкам)
  • функцию concatenate,
    которая объединяет массивы по заданной оси
  • функцию column_stack,
    которая объединяет одномерные массивы как столбцы
  • функцию stack,
    которая объединяет массивы по новой оси
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить