Maison > Article > développement back-end > Comment découper un tableau Numpy 2D en tableaux 2D plus petits ?
Numpy est une bibliothèque polyvalente permettant de manipuler des tableaux multidimensionnels en Python. Il propose diverses méthodes de manipulation des tableaux, notamment le découpage pour extraire des sections spécifiques. Cet article explore une solution pour découper un tableau 2D en tableaux 2D plus petits, en émulant l'exemple fourni :
[[1,2,3,4], -> [[1,2] [3,4] [5,6,7,8]] [5,6] [7,8]]
La solution suggérée exploite les fonctions reshape et swapaxes pour obtenir le découpage souhaité. La fonction reshape modifie la forme du tableau et la fonction swapaxes modifie les axes spécifiés. Dans le code Python suivant, la fonction blockshape encapsule cette approche :
def blockshaped(arr, nrows, ncols): h, w = arr.shape return (arr.reshape(h//nrows, nrows, -1, ncols) .swapaxes(1,2) .reshape(-1, nrows, ncols))
Explication :
Pour illustrer l'utilisation, considérons l'exemple de tableau c:
np.random.seed(365) c = np.arange(24).reshape((4, 6))
Slicing c en blocs de 2x3 :
sliced = blockshaped(c, 2, 3)
les tranches contiendront la 2D souhaitée blocs :
[[[ 0 1 2] [ 6 7 8]] [[ 3 4 5] [ 9 10 11]] [[12 13 14] [18 19 20]] [[15 16 17] [21 22 23]]]
Cette solution montre comment découper un tableau numpy 2D en tableaux 2D plus petits à l'aide des fonctions reshape et swapaxes. Il offre une approche flexible et efficace pour traiter et manipuler des images ou d'autres matrices.
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!