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ą.
- 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.
- 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.
- „C“ ir „F“ eilės neužima pagrindinio masyvo atminties išdėstymo ir nurodo tik indeksavimo tvarką.
- 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]])