numpy.stack()

Функция np.stack объединяет последовательность массивов одинаковой формы по новой оси. Все входы должны иметь одинаковую форму; результат имеет на одну размерность больше.

Сигнатура

numpy.stack(arrays, axis=0, out=None)

Параметры

  • arrays — последовательность массивов одинаковой формы.

  • axis — ось, по которой добавляется новая размерность.

  • out — необязательный выходной массив.

Возвращаемое значение

Массив с размерностью на 1 больше, чем у входных массивов.

Примеры

Пример 1. Сложить два одномерных массива в матрицу.

import numpy as np

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

Пример 2. Сложить по оси 1 (в столбцы).

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(np.stack([a, b], axis=1))
[[1 4]
 [2 5]
 [3 6]]

Пример 3. Собрать показания 3 датчиков по времени.

s1 = np.array([512, 510, 508])
s2 = np.array([480, 482, 478])
s3 = np.array([600, 605, 610])
m = np.stack([s1, s2, s3], axis=1)
print(m)
[[512 480 600]
 [510 482 605]
 [508 478 610]]

Пример 4. Стекинг матриц в 3D-тензор.

m1 = np.array([[1, 2], [3, 4]])
m2 = np.array([[5, 6], [7, 8]])
t = np.stack([m1, m2])
print(t.shape)
print(t)
(2, 2, 2)
[[[1 2]
  [3 4]]

 [[5 6]
  [7 8]]]

Пример 5. Ошибка при разных формах.

try:
    np.stack([np.array([1, 2]), np.array([3, 4, 5])])
except ValueError as e:
    print("Ошибка:", e)
Ошибка: all input arrays must have the same shape

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации NumPy (https://numpy.org/doc/stable/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.