logo

numpy.reshape() у Python

Функція numpy.reshape() доступна в пакеті NumPy. Як випливає з назви, reshape означає «зміни форми». Функція numpy.reshape() допомагає нам отримати нову форму масиву, не змінюючи його дані.

Іноді нам потрібно змінити форму даних із широких на довгі. Тож у цій ситуації ми маємо змінити форму масиву за допомогою функції reshape().

Синтаксис

 numpy.reshape(arr, new_shape, order='C') 

Параметри

Є такі параметри функції reshape():

1) arr: array_like

Це ndarray. Це вихідний масив, який ми хочемо змінити. Цей параметр є важливим і відіграє важливу роль у функції numpy.reshape().

int до char java

2) new_shape: int або кортеж int

Форма, в яку ми хочемо перетворити наш оригінальний масив, має бути сумісною з вихідним масивом. Якщо це ціле число, результатом буде одновимірний масив такої довжини. Один розмір форми може бути -1. Тут значення наближено довжиною масиву та іншими розмірами.

3) порядок: {'C', 'F', 'A'}, необов'язковий

Параметр порядку цих індексів відіграє вирішальну роль у функції reshape(). Ці порядки індексів використовуються для читання елементів вихідного масиву та розміщення елементів у зміненому масиві за допомогою цього порядку індексів.

  1. Порядок індексів «C» означає читання/запис елементів, які використовують C-подібний порядок індексів, де індекс останньої осі змінюється найшвидше, а назад індекс першої осі змінюється найповільніше.
  2. Порядок індексів «F» означає читання/запис елементів, які використовують порядок індексів, схожий на Fortran, де індекс останньої осі змінюється найповільніше, а індекс першої осі — найшвидше.
  3. Порядок «C» і «F» не займає обсягу розташування пам’яті основного масиву й стосується лише порядку індексування.
  4. Порядок індексу «A» означає читання/запис елементів у порядку індексу, подібному до Fortran, коли arr є безперервним у пам’яті, інакше використовуйте C-подібний порядок.

Повернення

Ця функція повертає ndarray. Це новий об’єкт перегляду, якщо це можливо; інакше це буде копія. Немає жодної гарантії щодо компонування пам’яті повернутого масиву.

Приклад 1: C-подібне впорядкування індексів

 import numpy as np x=np.arange(12) y=np.reshape(x, (4,3)) x y 

Вихід:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) 

У наведеному вище коді

  • Ми імпортували numpy з псевдонімом np.
  • Ми створили масив 'a' за допомогою функції np.arrange().
  • Ми оголосили змінну 'y' і присвоїли значення, що повертається функцією np.reshape().
  • Ми передали у функцію масив 'x' і форму.
  • Нарешті, ми спробували надрукувати значення arr.

У вихідних даних масив було представлено у вигляді трьох рядків і чотирьох стовпців.

Приклад 2: Еквівалент C ravel потім C reshape

 import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x),(3,4)) x y 

Функція ravel() використовується для створення безперервного зведеного масиву. Повертається одновимірний масив, який містить елементи введення. Копія робиться лише тоді, коли це необхідно.

pd.merge

Вихід:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) 

Приклад 3: упорядкування індексів, подібне до Fortran

 import numpy as np x=np.arange(12) y=np.reshape(x, (4, 3), order='F') x y 

Вихід:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]]) 

У наведеному вище коді

  • Ми імпортували numpy з псевдонімом np.
  • Ми створили масив 'a' за допомогою функції np.arrange().
  • Ми оголосили змінну 'y' і присвоїли значення, яке повертає функція np.reshape().
  • Ми передали у функцію масив «x», форму та порядок індексів, схожий на Fortran.
  • Нарешті, ми спробували надрукувати значення arr.

У вихідних даних масив було представлено у вигляді чотирьох рядків і трьох стовпців.

Приклад 4: упорядкування індексів, подібне до Fortran

 import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x, order='F'), (4, 3), order='F') x y 

Вихід:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 4, 8], [ 1, 5, 9], [ 2, 6, 10], [ 3, 7, 11]]) 

Приклад 5: невизначене значення вважається рівним 2

 import numpy as np x=np.arange(12) y=np.reshape(x, (2, -1)) x y 

У наведеному вище коді

  • Ми імпортували numpy з псевдонімом np.
  • Ми створили масив 'a' за допомогою функції np.arrange().
  • Ми оголосили змінну 'y' і присвоїли значення, що повертається функцією np.reshape().
  • Ми передали у функцію масив «x» і фігуру (невизначене значення).
  • Нарешті, ми спробували надрукувати значення arr.

У вихідних даних масив було представлено у вигляді двох рядків і п’яти стовпців.

Вихід:

 array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([[ 0, 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10, 11]])