logo

numpy.reshape() w Pythonie

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.

  1. 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.
  2. 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.
  3. Kolejność „C” i „F” nie uwzględnia układu pamięci podstawowej tablicy, a jedynie odnosi się do kolejności indeksowania.
  4. 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]])