Matrice transposée à l'aide de Numpy

Matrice transposée à l'aide de Numpy

Dans cet article, nous voyons comment le fonctionnement de la transposition de la matrice peut être effectué à l'aide de Numpy. L'opération de transport est une opération sur une matrice de telle sorte qu'elle retourne la matrice sur la diagonale. La matrice transposait sur un tableau 2D de dimension n * m produit une matrice de sortie de dimension m * n.

$ python3
Python 3.8.5 (par défaut, 8 mars 2021, 13:02:45)
[GCC 9.3.0] sur Linux2

Tapez «Help», «Copyright», «Crédits» ou «Licence» pour plus d'informations.

>>> Importer Numpy comme NP
>>> a = np.Array ([[1, 2, 3],
… [4, 5, 6]])
>>> A.forme
(2, 3)
>>> c = a.transposer()
>>> c
Array ([[1, 4],
[2, 5],
[3, 6]])
>>> c.forme
(3, 2)

Une transposition de matrice sur un tableau 1D n'a aucun effet car la transposition est la même que le tableau d'origine.

>>> a = np.ceux (3)
>>> A
tableau ([1., 1., 1.])
>>> A.forme
(3,)
>>> a_transpose = a.Transpose () # Transpose du tableau 1-D
>>> A_TRANSPOSE
tableau ([1., 1., 1.])
>>> A_TRANSPOSE.forme
(3,)

Pour convertir un tableau 1D en sa transposition en tant que vecteur 2D, un axe supplémentaire doit être ajouté. Poursuivant à partir de l'exemple précédent, le NP.Newaxis peut créer un nouveau vecteur de colonne 2D à partir d'un vecteur 1-D.

>>> A
tableau ([1., 1., 1.])
>>> un [np.Newaxis ,:]
Array ([[1., 1., 1.]])
>>> un [np.Newaxis ,:].forme
(1, 3)
>>> a [:, np.NewAxis]
Array ([[1.]],
[1.]],
[1.]])
>>> a [:, np.NewAxis].forme
(3, 1)

L'opération de transport sur un tableau prend également un argument des axes. Si les axes d'argument ne sont pas, l'opération de transposition inverse l'ordre des axes.

>>> a = np.Arange (2 * 3 * 4).Reshape (2, 3, 4)
>>> A
Array ([[[0, 1, 2, 3],
[4, 5, 6, 7],
[8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
>>> a_t = a.transposer()
>>> a_t
Array ([[[0, 12],
[4, 16],
[8, 20]],
[[1, 13],
[5, 17],
[9, 21]],
[[2, 14],
[6, 18],
[10, 22]],
[[3, 15],
[7, 19],
[11, 23]]])
>>> A.forme
(2, 3, 4)
>>> a_t.forme
(4, 3, 2)

Dans l'exemple ci-dessus, la dimension de la matrice A était (2, 3, 4), et après transposition, elle est devenue (4, 3, 2). La règle de transposition par défaut inverse l'axe de la matrice d'entrée I.e at [i, j, k] = a [k, j, i].

Cette permutation par défaut peut être modifiée en passant un tuple d'entiers comme un argument d'entrée pour transposer. Dans l'exemple ci-dessous, le j à la ième place du tuple signifie que l'axe de A deviendra un.JTH Axe de Transpose (). En continuant à partir de l'exemple précédent, nous passons les arguments (1, 2, 0) à un.transposer(). La règle de transposition ainsi suivie ici est à [i, j, k] = a [j, k, i].

>>> a_t = a.transposer ((1, 2, 0))
>>> a_t.forme
(3, 4, 2)
>>> a_t
Array ([[[0, 12],
[1, 13],
[2, 14],
[3, 15]],
[[4, 16],
[5, 17],
[6, 18],
[7, 19]],
[[8, 20],
[9, 21],
[10, 22],
[11, 23]]])