существует ли функция Python NumPy для выравнивания выбранных осей массива NumPy - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть 3d-массив "A" формы (m, n, k)

, и я хочу изменить его на форму (m, j), где j = m * k

один метод, который я использовал, это

A = np.arange(27).reshape([3,3,3])
A

>> array([[[ 0,  1,  2],
           [ 3,  4,  5],
           [ 6,  7,  8]],

          [[ 9, 10, 11],
           [12, 13, 14],
           [15, 16, 17]],

          [[18, 19, 20],
           [21, 22, 23],
           [24, 25, 26]]])
m = A.shape[0]
m

>> 3
A = A.reshape([m, -1])
A.shape

>> (3, 9)
A

>> array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8],
          [ 9, 10, 11, 12, 13, 14, 15, 16, 17],
          [18, 19, 20, 21, 22, 23, 24, 25, 26]])

, но я хочу знать, есть ли функция, которая может использоваться для изменения формы массива без вычисления "m"

что-то вроде

A.flatten_axes(axis=[1, 2])

, поэтому он сглаживает вложенные массивы и оставляет первую ось "0" нетронутой

...