Funkcja numpy.reshape() jest dostępna w pakiecie NumPy. Jak sama nazwa wskazuje, zmiana kształtu oznacza „zmianę kształtu”. Funkcja numpy.reshape() pomaga nam uzyskać nowy kształt tablicy bez zmiany jej danych.
Czasami musimy zmienić kształt danych z szerokich na długie. Zatem w tej sytuacji musimy zmienić kształt tablicy za pomocą funkcji reshape().
Składnia
numpy.reshape(arr, new_shape, order='C')
Parametry
Istnieją następujące parametry funkcji reshape():
1) arr: tablica_podobna
To jest ndarray. To jest tablica źródłowa, którą chcemy zmienić. Ten parametr jest niezbędny i odgrywa kluczową rolę w funkcji numpy.reshape().
int na char Java
2) new_shape: int lub krotka int
Kształt w jakim chcemy przekonwertować naszą oryginalną tablicę powinien być zgodny z oryginalną tablicą. Jeśli jest liczbą całkowitą, wynikiem będzie tablica 1-D o tej długości. Jeden wymiar kształtu może wynosić -1. Tutaj wartość jest przybliżana przez długość tablicy i pozostałe wymiary.
3) kolejność: {'C', 'F', 'A'}, opcjonalna
Parametr kolejności indeksów odgrywa kluczową rolę w funkcji reshape(). Te porządki indeksów służą do odczytywania elementów tablicy źródłowej i umieszczania elementów w przekształconej tablicy przy użyciu tej kolejności indeksów.
- Kolejność indeksów „C” oznacza odczyt/zapis elementów, które korzystają z kolejności indeksów podobnej do C, w której indeks ostatniej osi zmienia się najszybciej, z powrotem do indeksu pierwszej osi, który zmienia się najwolniej.
- Kolejność indeksów „F” oznacza odczyt/zapis elementów korzystających z kolejności indeksów podobnej do Fortranu, gdzie indeks ostatniej osi zmienia się najwolniej, a indeks pierwszej osi zmienia się najszybciej.
- Kolejność „C” i „F” nie uwzględnia układu pamięci podstawowej tablicy, a jedynie odnosi się do kolejności indeksowania.
- Kolejność indeksów „A” oznacza odczytywanie/zapisywanie elementów w kolejności indeksów podobnej do Fortranu, gdy arr sąsiaduje w pamięci, w przeciwnym razie należy zastosować kolejność podobną do C.
Zwroty
Ta funkcja zwraca ndarray. Jeśli to możliwe, jest to nowy obiekt widoku; w przeciwnym razie będzie to kopia. Nie ma gwarancji układu pamięci zwróconej tablicy.
Przykład 1: Porządkowanie indeksów w stylu C
import numpy as np x=np.arange(12) y=np.reshape(x, (4,3)) x y
Wyjście:
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]])
W powyższym kodzie
- Zaimportowaliśmy numpy z aliasem np.
- Utworzyliśmy tablicę „a” za pomocą funkcji np.arrange().
- Zadeklarowaliśmy zmienną „y” i przypisaliśmy wartość zwróconą przez funkcję np.reshape().
- W funkcji przekazaliśmy tablicę „x” i kształt.
- Na koniec próbowaliśmy wydrukować wartość arr.
W wynikach tablica została przedstawiona jako trzy wiersze i cztery kolumny.
Przykład 2: Odpowiednik C ravel, a następnie zmiana kształtu C
import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x),(3,4)) x y
Funkcja ravel() służy do tworzenia ciągłej spłaszczonej tablicy. Zwracana jest jednowymiarowa tablica zawierająca elementy wejściowe. Kopia jest wykonywana tylko wtedy, gdy jest to potrzebne.
pd.scal
Wyjście:
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]])
Przykład 3: Porządkowanie indeksów w stylu Fortranu
import numpy as np x=np.arange(12) y=np.reshape(x, (4, 3), order='F') x y
Wyjście:
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]])
W powyższym kodzie
- Zaimportowaliśmy numpy z aliasem np.
- Utworzyliśmy tablicę „a” za pomocą funkcji np.arrange().
- Zadeklarowaliśmy zmienną „y” i przypisaliśmy wartość zwróconą przez funkcję np.reshape().
- W funkcji przekazaliśmy tablicę „x” oraz kształt i kolejność indeksów podobną do Fortranu.
- Na koniec próbowaliśmy wydrukować wartość arr.
W wynikach tablica została przedstawiona jako cztery wiersze i trzy kolumny.
Przykład 4: Porządkowanie indeksów w stylu Fortranu
import numpy as np x=np.arange(12) y=np.reshape(np.ravel(x, order='F'), (4, 3), order='F') x y
Wyjście:
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]])
Przykład 5: Z nieokreślonej wartości wynika, że wynosi 2
import numpy as np x=np.arange(12) y=np.reshape(x, (2, -1)) x y
W powyższym kodzie
- Zaimportowaliśmy numpy z aliasem np.
- Utworzyliśmy tablicę „a” za pomocą funkcji np.arrange().
- Zadeklarowaliśmy zmienną „y” i przypisaliśmy wartość zwróconą przez funkcję np.reshape().
- W funkcji przekazaliśmy tablicę „x” i kształt (nieokreśloną wartość).
- Na koniec próbowaliśmy wydrukować wartość arr.
W wynikach tablica została przedstawiona jako dwa wiersze i pięć kolumn.
Wyjście:
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]])