Modulul numpy din Python oferă o funcție numită numpy.ravel, care este folosită pentru a schimba o matrice bidimensională sau o matrice multidimensională într-o matrice aplatizată contiguă. Matricea returnată are același tip de date ca și matricea sursă sau matricea de intrare. Dacă matricea de intrare este o matrice mascata, matricea returnată va fi, de asemenea, o matrice mascata.
Sintaxă:
numpy.ravel(x, order='C')
Parametri:
x: array_like
Acest parametru definește matricea de intrare, pe care dorim să o modificăm într-o matrice aplatizată contiguă. Elementele matricei sunt citite în ordinea specificată de parametrul de comandă și împachetate ca o matrice 1-D.
comanda: {'C','F', 'A', 'K'} (opțional)
Dacă setăm parametrul de ordine la „C”, înseamnă că matricea este aplatizată în ordinea principală a rândurilor. Dacă „F” este setat, matricea este aplatizată în ordinea majoră a coloanei. Matricea este aplatizată în ordinea coloanei majore numai atunci când „A” este Fortran contiguu în memorie și când setăm parametrul de ordine la „A”. Ultima ordine este „K”, care aplatizează matricea în aceeași ordine în care au apărut elementele în memorie. Implicit, acest parametru este setat la „C”.
Se intoarce:
Această funcție returnează o matrice aplatizată învecinată cu același tip de date ca o matrice de intrare și are forma egală cu ( x.dimensiune ).
Exemplul 1:
import numpy as np x = np.array([[1, 3, 5], [11, 35, 56]]) y=np.ravel(x) y
Ieșire:
array([ 1, 3, 5, 11, 35, 56])
În codul de mai sus
- Am importat numpy cu numele de alias np.
- Am creat o matrice 'X' folosind funcția np.array().
- Am declarat variabila y și am atribuit valoarea returnată a funcției np.ravel().
- Am trecut matricea 'X' in functie.
- În cele din urmă, am încercat să tipărim valoarea lui și .
În ieșire, valorile matricei sunt afișate într-o matrice aplatizată contiguă.
Exemplul 2:
import numpy as np x = np.array([[1, 3, 5], [11, 35, 56]]) y = np.ravel(x, order='F') z = np.ravel(x, order='C') p = np.ravel(x, order='A') q = np.ravel(x, order='K') y z p q
Ieșire:
array([ 1, 11, 3, 35, 5, 56]) array([ 1, 3, 5, 11, 35, 56]) array([ 1, 3, 5, 11, 35, 56]) array([ 1, 3, 5, 11, 35, 56])
Exemplul 3:
import numpy as np x = np.arange(12).reshape(3,2,2).swapaxes(1,2) x y=np.ravel(a, order='C') y z=np.ravel(a, order='K') z q=np.ravel(a, order='A') q
Ieșire:
array([[[ 0, 2], [ 1, 3]], [[ 4, 6], [ 5, 7]], [[ 8, 10], [ 9, 11]]]) array([ 0, 2, 1, 3, 4, 6, 5, 7, 8, 10, 9, 11]) array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]) array([ 0, 2, 1, 3, 4, 6, 5, 7, 8, 10, 9, 11])
În codul de mai sus
- Am importat numpy cu numele de alias np.
- Am creat o matrice 'X' folosind funcția np.arange().
- I-am schimbat forma și am schimbat axa folosind remodela() și np.swapaxes() funcţie.
- Am declarat variabilele y, z și q și am atribuit valoarea returnată a funcției np.ravel().
- Am trecut matricea 'X' și ordine C , K , și A in functie.
- În cele din urmă, am încercat să tipărim valoarea lui și .
În ieșire, valorile matricei sunt afișate într-o matrice aplatizată contiguă.