Функция NumPy stack() в Python: примеры и отличие от concatenate()

Функция NumPy stack() объединяет два или более массивов в один массив в Python.

Содержание

Что такое функция NumPy stack() в Python?

В отличие от функции concatenate(), функция stack() объединяет одномерные массивы в один двумерный массив и двумерные массивы в один трехмерный массив.

Ниже показан синтаксис функции stack():

numpy.stack((a1,a2,...),axis=0)

В этом синтаксисе (a1, a2, …) — это последовательность массивов с типом ndarray или объектами, подобными массивам. Все массивы a1, a2, .. должны иметь одинаковую форму.

Параметр axis указывает ось в результирующем массиве, вдоль которой функция складывает входные массивы. По умолчанию ось равна нулю, что объединяет входные массивы по вертикали.

Помимо функции stack(), NumPy также имеет функцию vstack(), которая объединяет два или более массивов по вертикали, и функцию hstack(), которая объединяет два или более массивов по горизонтали.

Примеры с функцией NumPy stack()

Давайте рассмотрим несколько примеров использования функции stack().

1) Использование функции stack() для объединения одномерных массивов

В следующем примере функция stack() используется для объединения двух одномерных массивов:

import numpy as np

a = np.array([1, 2])
b = np.array([3, 4])

c = np.stack((a, b))
print(c)

Выход:

[[1 2] 
 [3 4]]

Функция numpy stack() объединяет 1d массивы

В следующем примере функция stack() используется для объединения двух одномерных массивов по горизонтали с использованием оси 1:

import numpy as np

a = np.array([1, 2])
b = np.array([3, 4])

c = np.stack((a, b), axis=1)
print(c)

Выход:

[[1 3] 
 [2 4]]

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

В следующем примере функция stack() используется для объединения элементов двух 2D-массивов. Результатом является 3D-массив:

import numpy as np

a = np.array([
    [1, 2],
    [3, 4]
])
b = np.array([
    [5, 6],
    [7, 8]
])

c = np.stack((a, b))
print(c)
print(c.shape)

Пример объединения 2d массивов

Выход:

[[[1 2]
  [3 4]]
 [[5 6]
  [7 8]]]
(2, 2, 2)

Сравнение методов NumPy stack() и concatenate()

Следующий пример иллюстрирует разницу между функциями stack() и concatenate():

a = np.array([1,2])
b = np.array([3,4])

c = np.concatenate((a,b)) # return 1-D array                    
d = np.stack((a,b)) # return 2-D array
print(c)
print(d)

Выход:

[1 2 3 4]
[[1 2]
 [3 4]]

Сравнение функций NumPy stack() и concatenate() на примере

В этом примере функция concatenate() объединяет элементы двух массивов вдоль существующей оси, а функция stack() объединяет два массива вдоль новой оси.

Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *