Maison  >  Article  >  développement back-end  >  Comment aplatir une matrice en Python en utilisant numpy ?

Comment aplatir une matrice en Python en utilisant numpy ?

WBOY
WBOYavant
2023-08-20 16:37:131046parcourir

Comment aplatir une matrice en Python en utilisant numpy ?

Dans cet article, nous allons vous montrer comment aplatir une matrice à l'aide de la bibliothèque NumPy en python.

Fonction numpy.ndarray.flatten()

Le module numpy comprend une fonction appelée numpy.ndarray.flatten() qui renvoie une copie unidimensionnelle du tableau plutôt qu'un tableau bidimensionnel ou multidimensionnel.

En termes simples, on peut dire qu'il aplatit la matrice en 1 dimension.

Grammaire

ndarray.flatten(order='C')

Paramètres

commander − 'C', 'F', 'A', 'K' (facultatif)

  • Lorsque nous définissons les paramètres de tri sur 'C,', le tableau est aplati dans ordre principal des lignes.

  • Lorsque le « F » est défini, le tableau est aplati dans l'ordre colonne majeure.

  • Le tableau est développé dans l'ordre principal des colonnes uniquement si « a » est contigu en Fortran en mémoire et que le paramètre d'ordre est défini sur « A ». L'ordre final est « K », qui déroule le tableau dans le même ordre que celui dans lequel les éléments apparaissent en mémoire. Ce paramètre est défini sur « C » par défaut.

Valeur de retour - Renvoie une matrice 1D aplatie

Méthode 1 - Aplatissement de la matrice Numpy 2x2 de type np.array()

Algorithme (étapes)

Voici les algorithmes/étapes pour effectuer la tâche requise :

  • Utilisez le mot-clé import pour importer le module numpy avec un alias (np).

  • Utilisez la fonction numpy.array() (qui renvoie un ndarray. Un ndarray est un objet tableau qui satisfait aux exigences données) pour créer un tableau numpy en passant un tableau à 2 dimensions (2 lignes, 2 colonnes) comme argument à cela.

  • Imprimez la matrice 2D donnée.

  • Appliquez la fonction flatten() du module numpy (aplatir la matrice à une dimension) sur la matrice d'entrée pour aplatir la matrice bidimensionnelle d'entrée en une matrice unidimensionnelle.

  • Imprimez la matrice aplatie résultante de la matrice d'entrée.

Exemple

Le programme suivant aplatit la matrice bidimensionnelle d'entrée donnée en une matrice unidimensionnelle à l'aide de la fonction flatten() et la renvoie −

# importing numpy module with an alias name
import numpy as np

# creating a 2-Dimensional(2x2) numpy matrix
inputMatrix = np.array([[3, 5], [4, 8]])

# printing the input 2D matrix
print("The input numpy matrix:")
print(inputMatrix)

# flattening the 2D matrix to one-dimensional matrix
flattenMatrix = inputMatrix.flatten()

# printing the resultant flattened matrix
print("Resultant flattened matrix:")
print(flattenMatrix)

Sortie

Une fois exécuté, le programme ci-dessus générera le résultat suivant : 

The input numpy matrix:
[[3 5]
[4 8]]
Resultant flattened matrix:
[3 5 4 8]

Méthode 2 - Aplatissement à l'aide de la fonction reshape()

Algorithme (étapes)

Voici les algorithmes/étapes pour effectuer la tâche requise :

  • Utilisez la fonction numpy.array() (renvoie un ndarray. Le ndarray est un objet tableau qui satisfait aux exigences données), pour créer un tableau numpy en passant le tableau à 4 dimensions (4 lignes, 4 colonnes) comme argument à cela.

  • Imprimez la matrice 4D donnée.

  • Calculez le nombre d'éléments d'une matrice en multipliant la longueur du tableau NumPy par elle-même. Ces valeurs représentent le nombre de colonnes requis.

  • Utilisez la fonction reshape() (remodèle un tableau sans affecter ses données) pour remodeler le tableau et aplatir la matrice d'entrée (4D) en une matrice unidimensionnelle.

  • Imprimez la matrice aplatie résultante de la matrice d'entrée.

Exemple

Le programme suivant utilise la fonction reshape() pour aplatir la matrice à 4 dimensions donnée en une matrice à 1 dimension et renvoie le résultat -

# importing numpy module with an alias name
import numpy as np

# creating a 4-Dimensional(4x4) numpy matrix
inputMatrix = np.array([[1, 2, 3, 97],
   [4, 5, 6, 98],
   [7, 8, 9, 99],
   [10, 11, 12, 100]])

# Getting the total Number of elements of the matrix
matrixSize = len(inputMatrix) * len(inputMatrix)

# printing the input 4D matrix
print("The input numpy matrix:")
print(inputMatrix)

# reshaping the array and flattening the 4D matrix to a one-dimensional matrix

# here (1,matrixSize(16)) says 1 row and 16 columns(Number of elements)
flattenMatrix= np.reshape(inputMatrix, (1, matrixSize))

# printing the resultant flattened matrix
print("Resultant flattened matrix:")
print(flattenMatrix)

Sortie

Une fois exécuté, le programme ci-dessus générera le résultat suivant : 

The input numpy matrix:
[[  1   2   3  97]
 [  4   5   6  98]
 [  7   8   9  99]
 [ 10  11  12 100]]
Resultant flattened matrix:
[[  1   2   3  97   4   5   6  98   7   8   9  99  10  11  12 100]]

Méthode 3 - Aplatir une matrice Numpy 4x4 de type np.matrix()

La traduction chinoise est :

Méthode 3 - Aplatir une matrice Numpy 4x4 de type np.matrix()

Algorithme (étapes)

Voici les algorithmes/étapes pour effectuer la tâche requise :

  • Utilisez la fonction numpy.matrix() (qui renvoie une matrice à partir d'une chaîne de données ou d'un objet de type tableau. La matrice résultante est un tableau 4D spécialisé), en passant un tableau 4D (4 lignes, 4 colonnes ) comme argument Passez-le pour créer une matrice numpy.

  • Imprimez la matrice aplatie résultante de la matrice d'entrée.

Exemple

Le programme suivant utilise la fonction flatten() pour aplatir une matrice à 4 dimensions donnée en une matrice à 1 dimension et renvoie le résultat -

# importing NumPy module with an alias name
import numpy as np

# creating a NumPy matrix (4x4 matrix) using matrix() method
inputMatrix = np.matrix('[11, 1, 8, 2; 11, 3, 9 ,1; 1, 2, 3, 4; 9, 8, 7, 6]')

# printing the input 4D matrix
print("The input numpy matrix:")
print(inputMatrix)

# flattening the 4D matrix to one-dimensional matrix
flattenMatrix = inputMatrix.flatten()

# printing the resultant flattened matrix
print("Resultant flattened matrix:")
print(flattenMatrix)

Sortie

Une fois exécuté, le programme ci-dessus générera le résultat suivant : 

The input numpy matrix:
[[11  1  8  2]
 [11  3  9  1]
 [ 1  2  3  4]
 [ 9  8  7  6]]
Resultant flattened matrix:
[[11  1  8  2 11  3  9  1  1  2  3  4  9  8  7  6]]

Conclusion

Dans cet article, nous avons appris à aplatir une matrice en Python à l'aide de trois exemples différents. Nous avons appris comment obtenir des matrices dans Numpy en utilisant deux méthodes différentes : numpy.array() et NumPy.matrix(). Nous avons également appris à aplatir une matrice à l'aide de la fonction reshape.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer