Exemple de comment sous-échantillonner une matrice en ne gardant qu'un seul élément tous les n * n blocs avec numpy?
Table des matières
Note: voir aussi how to do downsample a matrix by averaging elements n*n with numpy in python
Créer une matrice
import numpy as np
a = np.random.randint(0,100,(6,6))
print(a)
print(a.shape)
donne par exemple
[[52 87 50 58 75 59]
[27 40 36 50 9 20]
[94 54 4 0 6 6]
[ 5 50 87 74 36 93]
[15 19 0 79 33 73]
[51 57 32 8 1 89]]
avec comme dimension
(6, 6)
Gardez un seul élément tous les $n \times n$ blocks
Pour sous-échantillonner une matrice, une solution simple consiste à slice, exemple:
a = a[1::2, 1::2]
print(a)
print(a.shape)
donne
[[40 50 20]
[50 74 93]
[57 8 89]]
avec comme dimension
(3, 3)