logo

numpy.reshape() Python

Funkcija numpy.reshape() ir pieejama NumPy pakotnē. Kā norāda nosaukums, reshape nozīmē 'formas izmaiņas'. Funkcija numpy.reshape() palīdz mums iegūt jaunu formu masīvam, nemainot tā datus.

Dažreiz mums ir jāpārveido dati no plašiem uz gariem. Tātad šajā situācijā mums ir jāpārveido masīvs, izmantojot funkciju reshape().

Sintakse

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

Parametri

Reshape() funkcijai ir šādi parametri:

1) arr: masīva_līdzīgs

Šis ir ndarray. Šis ir avota masīvs, kuru mēs vēlamies pārveidot. Šis parametrs ir būtisks, un tam ir būtiska nozīme numpy.reshape() funkcijā.

virkne char java

2) new_shape: int vai int kortežs

Formai, kādā mēs vēlamies pārveidot savu sākotnējo masīvu, jābūt saderīgai ar sākotnējo masīvu. Ja tas ir vesels skaitlis, rezultāts būs šāda garuma 1-D masīvs. Viena formas dimensija var būt -1. Šeit vērtība tiek tuvināta pēc masīva garuma un atlikušajiem izmēriem.

3) secība: {'C', 'F', 'A'}, pēc izvēles

Šiem indeksu secības parametriem ir izšķiroša nozīme reshape() funkcijā. Šīs indeksa secības tiek izmantotas, lai nolasītu avota masīva elementus un ievietotu elementus pārveidotajā masīvā, izmantojot šo indeksa secību.

  1. Indeksa secība “C” nozīmē nolasīt/rakstīt elementus, kas izmanto C līdzīgu indeksu secību, kur pēdējās ass indekss mainās visātrāk, atpakaļ uz pirmās ass indeksu, kas mainās vislēnāk.
  2. Indeksa secība “F” nozīmē nolasīt/rakstīt elementus, kas izmanto Fortran līdzīgu indeksu secību, kur pēdējās ass indekss mainās vislēnāk un pirmās ass indekss mainās visātrāk.
  3. “C” un “F” secība neņem vērā pamatā esošā masīva atmiņas izkārtojumu un attiecas tikai uz indeksēšanas secību.
  4. Indeksa secība “A” nozīmē elementu lasīšanu/rakstīšanu Fortran līdzīgā indeksa secībā, kad arr ir blakus atmiņā, pretējā gadījumā izmantojiet C līdzīgu secību.

Atgriežas

Šī funkcija atgriež ndarray. Ja iespējams, tas ir jauns skata objekts; pretējā gadījumā tā būs kopija. Nav garantijas par atgrieztā masīva atmiņas izkārtojumu.

1. piemērs: C veida indeksu sakārtošana

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

Izvade:

 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]]) 

Iepriekš minētajā kodā

  • Mēs esam importējuši numpy ar aizstājvārdu np.
  • Mēs esam izveidojuši masīvu 'a', izmantojot funkciju np.arrange().
  • Mēs esam deklarējuši mainīgo 'y' un piešķīruši funkcijas np.reshape() atgriezto vērtību.
  • Mēs esam izturējuši masīvu “x” un formu funkcijā.
  • Visbeidzot, mēs mēģinājām izdrukāt arr vērtību.

Izvadē masīvs ir attēlots kā trīs rindas un četras kolonnas.

2. piemērs: ekvivalents C ravel, pēc tam C pārveido

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

Funkciju ravel() izmanto, lai izveidotu blakus esošo saplacinātu masīvu. Tiek atgriezts viendimensijas masīvs, kas satur ievades elementus. Kopiju izgatavo tikai tad, kad tas ir nepieciešams.

aktieris Zeenat Aman

Izvade:

 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. piemērs: Fortran tipa indeksu sakārtošana

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

Izvade:

 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]]) 

Iepriekš minētajā kodā

  • Mēs esam importējuši numpy ar aizstājvārdu np.
  • Mēs esam izveidojuši masīvu 'a', izmantojot funkciju np.arrange().
  • Mēs esam deklarējuši mainīgo 'y' un piešķīruši funkcijas np.reshape() atgriezto vērtību.
  • Funkcijā esam izturējuši masīvu “x” un formu un Fortran līdzīgu indeksu secību.
  • Visbeidzot, mēs mēģinājām izdrukāt arr vērtību.

Izvadē masīvs ir attēlots kā četras rindas un trīs kolonnas.

4. piemērs: Fortran līdzīga indeksu sakārtošana

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

Izvade:

 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. piemērs: tiek secināts, ka nenoteiktā vērtība ir 2

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

Iepriekš minētajā kodā

  • Mēs esam importējuši numpy ar aizstājvārdu np.
  • Mēs esam izveidojuši masīvu 'a', izmantojot funkciju np.arrange().
  • Mēs esam deklarējuši mainīgo 'y' un piešķīruši funkcijas np.reshape() atgriezto vērtību.
  • Funkcijā esam nodevuši masīvu “x” un formu (nenorādīta vērtība).
  • Visbeidzot, mēs mēģinājām izdrukāt arr vērtību.

Izvadē masīvs ir attēlots kā divas rindas un piecas kolonnas.

Izvade:

 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]])