Python (école d'ingénieur) · Chapitre 12 · Exercice
Fancy indexing
Résolution de systèmes linéaires
Énoncé
Utiliser le fancy indexing pour permuter les lignes et les colonnes d'une matrice.
Corrigé
import numpy as np
A = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]])
print("Matrice originale :")
print(A)
# Permutation des lignes 0 et 2
A_perm_lignes = A.copy()
A_perm_lignes[[0, 2]] = A_perm_lignes[[2, 0]]
print("\nAprès permutation des lignes 0 et 2 :")
print(A_perm_lignes)
# Permutation des colonnes 1 et 3
A_perm_colonnes = A.copy()
A_perm_colonnes[:, [1, 3]] = A_perm_colonnes[:, [3, 1]]
print("\nAprès permutation des colonnes 1 et 3 :")
print(A_perm_colonnes)
# Permutation simultanée
A_perm_both = A.copy()
A_perm_both[[0, 2]] = A_perm_both[[2, 0]]
A_perm_both[:, [1, 3]] = A_perm_both[:, [3, 1]]
print("\nAprès permutation des lignes (0 <-> 2) et colonnes (1 <-> 3) :")
print(A_perm_both)
Résultat dans la console :
Matrice originale :
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]
[13 14 15 16]]
Après permutation des lignes 0 et 2 :
[[ 9 10 11 12]
[ 5 6 7 8]
[ 1 2 3 4]
[13 14 15 16]]
Après permutation des colonnes 1 et 3 :
[[ 1 4 3 2]
[ 5 8 7 6]
[ 9 12 11 10]
[13 16 15 14]]
Après permutation des lignes (0 <-> 2) et colonnes (1 <-> 3) :
[[ 9 12 11 10]
[ 5 8 7 6]
[ 1 4 3 2]
[13 16 15 14]]100 % gratuit
La suite du chapitre est sur Adloun
- 7 autres exercices corrigés dans ce chapitre, et 7 à chercher avec le tuteur
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.