Функція 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(). Ці порядки індексів використовуються для читання елементів вихідного масиву та розміщення елементів у зміненому масиві за допомогою цього порядку індексів.
- Порядок індексів «C» означає читання/запис елементів, які використовують C-подібний порядок індексів, де індекс останньої осі змінюється найшвидше, а назад індекс першої осі змінюється найповільніше.
- Порядок індексів «F» означає читання/запис елементів, які використовують порядок індексів, схожий на Fortran, де індекс останньої осі змінюється найповільніше, а індекс першої осі — найшвидше.
- Порядок «C» і «F» не займає обсягу розташування пам’яті основного масиву й стосується лише порядку індексування.
- Порядок індексу «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]])