logo

numpy.reshape() Python

Funkcija numpy.reshape() yra NumPy pakete. Kaip rodo pavadinimas, reshape reiškia „formos pokyčius“. Funkcija numpy.reshape() padeda mums gauti naują masyvo formą nekeičiant jo duomenų.

Kartais mums reikia pakeisti duomenis iš plačių į ilgus. Taigi šioje situacijoje turime pakeisti masyvą naudodami reshape() funkciją.

Sintaksė

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

Parametrai

Yra šie funkcijos reshape() parametrai:

1) arr: array_like

Tai yra ndarray. Tai yra šaltinio masyvas, kurį norime pakeisti. Šis parametras yra būtinas ir atlieka gyvybiškai svarbų vaidmenį numpy.reshape() funkcijoje.

sdlc

2) new_shape: int arba eilė ints

Forma, į kurią norime konvertuoti pradinį masyvą, turėtų būti suderinama su pradiniu masyvu. Jei sveikasis skaičius, rezultatas bus tokio ilgio 1-D masyvas. Vienas formos matmuo gali būti -1. Čia vertė apytiksliai apskaičiuojama pagal masyvo ilgį ir likusius matmenis.

3) tvarka: {'C', 'F', 'A'}, neprivaloma

Šie indeksų eilės parametrai atlieka lemiamą vaidmenį reshape() funkcijoje. Šios indekso eilės naudojamos šaltinio masyvo elementams nuskaityti ir elementams sudėti į pakeistą masyvą naudojant šią indekso tvarką.

  1. Indekso tvarka „C“ reiškia, kad reikia skaityti / įrašyti elementus, kurie naudoja C tipo indekso tvarką, kai paskutinės ašies indeksas keičiasi greičiausiai, o atgal į pirmosios ašies indeksą, kuris kinta lėčiausiai.
  2. Indekso tvarka „F“ reiškia, kad reikia skaityti / įrašyti elementus, kurie naudoja „Fortran“ tipo indekso tvarką, kai paskutinės ašies indeksas keičiasi lėčiausiai, o pirmosios ašies indeksas keičiasi greičiausiai.
  3. „C“ ir „F“ eilės neužima pagrindinio masyvo atminties išdėstymo ir nurodo tik indeksavimo tvarką.
  4. Indekso tvarka „A“ reiškia elementų skaitymą / rašymą „Fortran“ tipo indekso tvarka, kai arr yra gretima atmintyje, kitu atveju naudokite C panašią tvarką.

Grąžina

Ši funkcija grąžina ndarray. Jei įmanoma, tai naujas peržiūros objektas; kitu atveju tai bus kopija. Grąžinamo masyvo atminties išdėstymas negarantuojamas.

1 pavyzdys: C tipo indeksų išdėstymas

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

Išvestis:

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

Aukščiau pateiktame kode

  • Mes importavome numpy su slapyvardžiu np.
  • Sukūrėme masyvą „a“ naudodami funkciją np.arrange().
  • Mes paskelbėme kintamąjį 'y' ir priskyrėme grąžintą funkcijos np.reshape() reikšmę.
  • Mes perdavėme masyvą „x“ ir formą funkcijoje.
  • Galiausiai bandėme atspausdinti arr vertę.

Išvestyje masyvas buvo pavaizduotas kaip trys eilutės ir keturi stulpeliai.

2 pavyzdys: atitikmuo C ravel, tada C reshape

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

Funkcija ravel() naudojama kuriant gretimą išlygintą masyvą. Grąžinamas vienmatis masyvas, kuriame yra įvesties elementai. Kopija daroma tik tada, kai jos reikia.

pagrindinis metodas java

Išvestis:

 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 pavyzdys: „Fortran“ tipo indeksų išdėstymas

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

Išvestis:

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

Aukščiau pateiktame kode

  • Mes importavome numpy su slapyvardžiu np.
  • Sukūrėme masyvą „a“ naudodami funkciją np.arrange().
  • Mes paskelbėme kintamąjį 'y' ir priskyrėme grąžintą funkcijos np.reshape() reikšmę.
  • Funkcijoje perdavėme masyvą „x“ ir formą bei „Fortran“ tipo indekso tvarką.
  • Galiausiai bandėme atspausdinti arr vertę.

Išvestyje masyvas buvo pavaizduotas kaip keturios eilutės ir trys stulpeliai.

4 pavyzdys: Fortran tipo indeksų išdėstymas

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

Išvestis:

 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 pavyzdys: nenurodyta vertė yra 2

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

Aukščiau pateiktame kode

  • Mes importavome numpy su slapyvardžiu np.
  • Sukūrėme masyvą „a“ naudodami funkciją np.arrange().
  • Mes paskelbėme kintamąjį 'y' ir priskyrėme grąžintą funkcijos np.reshape() reikšmę.
  • Funkcijoje perdavėme masyvą „x“ ir formą (neapibrėžtą reikšmę).
  • Galiausiai bandėme atspausdinti arr vertę.

Išvestyje masyvas buvo pavaizduotas kaip dvi eilutės ir penki stulpeliai.

Išvestis:

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