Почему .reshape(a, b) != .reshape(b, a).T? ⇐ Python
-
Гость
Почему .reshape(a, b) != .reshape(b, a).T?
Я столкнулся с этой проблемой при выравнивании изображений. Рассмотрим следующий массив
>>> импортировать numpy как np >>> arr = np.array([[[1, 2], [3, 4]], [[1, 2], [3, 4]]]) >>> форма формы (2, 2, 2) Я хочу преобразовать это в массив 4x2, где каждый вертикальный фрагмент представляет собой сплющенное изображение.
1. Использование .reshape(2, 4).T
Это позволит достичь желаемого результата
>>> arr_flatten = arr.reshape(2, 4).T >>> arr_flatten [[1 1] [2 2] [3 3] [4 4]] 2. Использование .reshape(4, 2) Это не дает желаемого результата
>>> arr_flatten = arr.reshape(4, 2) >>> arr_flatten [[1 2] [3 4] [1 2] [3 4]] Почему второй подход не работает?
Я столкнулся с этой проблемой при выравнивании изображений. Рассмотрим следующий массив
>>> импортировать numpy как np >>> arr = np.array([[[1, 2], [3, 4]], [[1, 2], [3, 4]]]) >>> форма формы (2, 2, 2) Я хочу преобразовать это в массив 4x2, где каждый вертикальный фрагмент представляет собой сплющенное изображение.
1. Использование .reshape(2, 4).T
Это позволит достичь желаемого результата
>>> arr_flatten = arr.reshape(2, 4).T >>> arr_flatten [[1 1] [2 2] [3 3] [4 4]] 2. Использование .reshape(4, 2) Это не дает желаемого результата
>>> arr_flatten = arr.reshape(4, 2) >>> arr_flatten [[1 2] [3 4] [1 2] [3 4]] Почему второй подход не работает?