Функция numpy.reshape() в Python — изменение формы массива

Numpy reshape() может создавать многомерные массивы и получать другую математическую статистику. Numpy можно импортировать как import numpy as np. Метод np.reshape() придает новую форму массиву без изменения его элементов.

Что такое функция np.reshape() в Python?

numpy.reshape(array, shape, order = ‘C’) в Python — это математическая функция, которая изменяет форму массиву без изменения его данных. Функция np.reshape() принимает три аргумента и возвращает измененный массив. Для работы с функцией np.reshape() вам необходимо установить numpy для этого руководства.

Давайте посмотрим на синтаксис метода numpy reshape().

Синтаксис

Параметры

  1. array: отображает input_array, форма которого должна быть изменена.
  2. shape: представляет значение int или кортежи int.
  3. order: этот параметр представляет порядок операций. Это может быть либо C_contiguous, либо F_contiguous, где C-порядок управляет ростом строки в массиве, а F-порядок управляет операциями по столбцам.

Возвращаемое значение

Функция Numpy reshape() возвращает массив с новой формой, содержимое которого не изменилось.

Примеры с методом np.reshape()

Пример 1

Программа для демонстрации работы функции reshape().

Выход

Объяснение.

В приведенном выше коде исходный массив был одномерным массивом.

Итак, в 1-й функции массив был изменен на 3 строки и 2 столбца. Во второй функции массив был изменен на 2 строки и 3 столбца.

Примечание.

В приведенной выше функции массив изменяется только тогда, когда размер массива равен произведению строк и столбцов. Если нет, то оболочка выдаст ошибку.

Пример 2

См. следующий код.

Выход

Как использовать метод ndarray.reshape() в Python

В качестве примера возьмем следующий одномерный массив NumPy ndarray.

Выход

Укажите преобразованную форму в виде списка или кортежа в первом аргументе метода reshape() для numpy.ndarray.

См. следующий код.

Выход

Сначала мы определили массив, а затем распечатали форму и размер массива.

Затем мы преобразовали массив в форму [3, 4], а затем распечатали размер и форму массива. Если форма не соответствует количеству элементов в исходном массиве, будет выброшено ValueError.

Преобразование массива из 1D в 3D в Python

Сначала мы воспользуемся функцией np arange() для создания одномерного массива с элементами .9, а затем воспользуемся методом reshape() для преобразования массива в массив(3 x 3).

Выход

Вы можете видеть, что мы создали одномерный массив с помощью метода arange(), а затем преобразовали этот массив в трехмерный массив с помощью метода reshape().

Можем ли мы преобразовать массив в любую форму?

Да, можем, если элементы, необходимые для изменения формы, одинаковы в обеих формах.

Мы можем преобразовать 8-элементный 1D-массив в 4 элемента в 2-строчном 2D-массиве, но мы не можем преобразовать его в 3-элементный 3-строчный 2D-массив, для которого потребовалось бы 3×3 = 9 элементов.

Давайте попробуем преобразовать одномерный массив с 8 элементами в двумерный массив с тремя элементами в каждом измерении.

Выход

Мы получили ValueError: невозможно преобразовать массив размера 8 в форму (3,3).

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

Numpy reshape возвращает копию или представление?

Метод Numpy reshape() возвращает исходный массив, поэтому он возвращает представление.

Выход

Вы можете видеть, что он возвращает исходный массив. Итак, это взгляд.

Прохождение неизвестного измерения

В numpy reshape() вам разрешено иметь одно «неизвестное» измерение. Это означает, что вам не нужно указывать точное число для одного из измерений в методе изменения формы.

Передайте -1 в качестве значения, и NumPy рассчитает это число за вас.

Выход

Пожалуйста, имейте в виду, что мы не можем передать -1 более чем одному измерению.

Сведение массивов с помощью numpy reshape()

Сглаживание массива означает преобразование многомерного массива в одномерный массив.

Для этого мы можем использовать reshape(-1).

Вывод

Вы можете видеть, что мы определили 2D-массив, а затем преобразовали этот 2D-массив в 1D-массив, используя метод reshape(). Наконец, мы напечатали его размеры, используя свойство ndim numpy.

Заключение

В функции numpy.reshape() укажите исходный numpy.ndarray в качестве первого аргумента и форму для преобразования во второй аргумент в виде списка или кортежа.

Если форма не соответствует количеству элементов в исходном массиве, произойдет ошибка ValueError.

Оцените статью

Автор статей и разработчик, делюсь знаниями.

Программирование на Python