Как сделать массив 2d numpy 3D-массивом?

У меня есть 2d массив с формой (x, y), который я хочу преобразовать в 3d-массив с формой (x, y, 1). Есть ли хороший Pythonic способ сделать это?

Ответы

Ответ 1

В дополнение к другим ответам вы также можете использовать нарезку с numpy.newaxis:

>>> from numpy import zeros, newaxis
>>> a = zeros((6, 8))
>>> a.shape
(6, 8)
>>> b = a[:, :, newaxis]
>>> b.shape
(6, 8, 1)

Или даже это (что будет работать с произвольным числом измерений):

>>> b = a[..., newaxis]
>>> b.shape
(6, 8, 1)

Ответ 2

numpy.reshape(array, array.shape + (1,))

Ответ 3

import numpy as np

a= np.eye(3)
print a.shape
b = a.reshape(3,3,1)
print b.shape