У меня есть 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" нетронутой