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.