J'ai un tableau numpy 2D duquel je veux extraire plusieurs ensembles de lignes/colonnes.
# img is 2D array
img = np.arange(25).reshape(5,5)
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, 24]])
Je connais la syntaxe pour extraire un ensemble de lignes/colonnes. Ce qui suit va extraire les 4 premières lignes et les 3ème et 4ème colonnes comme indiqué ci-dessous
img[0:4, 2:4]
array([[ 2, 3],
[ 7, 8],
[12, 13],
[17, 18]])
Cependant, quelle est la syntaxe si je veux extraire plusieurs ensembles de lignes et/ou de colonnes ? J'ai essayé ce qui suit, mais cela conduit à un invalid syntax
error
img[[0,2:4],2]
Le résultat que je cherche à obtenir avec la commande ci-dessus est le suivant
array([[ 2],
[12],
[17]])
J'ai essayé de faire des recherches sur ce sujet, mais elles n'aboutissent qu'à des résultats pour un ensemble de lignes/colonnes ou à l'extraction de lignes/colonnes discrètes, ce que je sais faire, comme utiliser np.ix.
Pour situer le contexte, le tableau 2D avec lequel je travaille actuellement a des dimensions de ~800X1200, et à partir de ce tableau, je veux extraire plusieurs plages de lignes et de colonnes en une seule fois. Donc quelque chose comme img[[0:100, 120:210, 400, 500:600], [1:450, 500:550, 600, 700:950]]
.