Вы можете использовать np.reshape
:
>>> import numpy as np
>>> x = np.ones((6,100,161))
>>> x = x.reshape((-1, 161))
>>> x = x[:584, :]
>>> x.shape
(584, 161)
Здесь -1
работает так:
Если исходная форма была (x, y, z )
, тогда, если вы напишите reshape(-1, z)
Это означает, что вы хотите измерения, поскольку вы дали два числа -1
и z
, но вы указали размер только для 1 размерность (т.е. z
), поэтому он выводит, что другой размер должен быть всем, что осталось.
Итак, общее количество элементов x * y * z
, теперь после изменения формы количество элементов должно быть одинаковым. Вы указали, что вы хотите z
количество столбцов, поэтому количество строк должно быть x * y * z / z == x * y
. -1
облегчает это.
Например:
>>> x = np.ones((3,4,3))
# number of elements = 3 * 4 * 3 == 36
>>> y = x.reshape(9, -1)
# you say you want 9 rows, so remaining elements
# would be, 36 / 9 == 4, so no. of cols == 4
>>> y.shape
(9, 4)