Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Insérer une matrice dans une autre à un endroit précis

+3 votes

Après quelques recherches j'ai uniquement lu des solutions pour concaténer (ou ajouter) des matrices dans des autres, mais pas pour en insérer une dans une autre à un endroit précis.

Exemple :

matrice_de_base = numpy.matrix([['A', 'A', 'A'],
                                ['A', 'A', 'A'],
                                ['A', 'A', 'A']])

seconde_matrice = numpy.matrix([['B', 'B'],
                                ['B', 'B']])

En considérant que matrice_finale est le résultat après avoir inséré seconde_matrice à la position (1, 1), soit au centre de matrice_de_base, voici ce que j'aimerais que print(matrice_finale) me donne :

[['A', 'A', 'A'],
 ['A', 'B', 'B'],
 ['A', 'B', 'B']]

Est-ce possible ?

NB : j'ai découvert numpy hier soir et Python il y a un an, soyez indulgents ^^

demandé 8-Mar-2016 par Epoc (392 points)
reclassée 8-Mar-2016 par Epoc

1 Réponse

+5 votes

Un slicing index est le plus simple à mon avis :

>>> matrice_de_base = numpy.matrix([['A', 'A', 'A'],
                            ['A', 'A', 'A'],
                            ['A', 'A', 'A']])
>>> seconde_matrice = numpy.matrix([['B', 'B'],
                            ['B', 'B']])
>>> matrice_de_base[1:, 1:] = seconde_matrice
>>> matrice_de_base
matrix([['A', 'A', 'A'],
        ['A', 'B', 'B'],
        ['A', 'B', 'B']], 
        dtype='|S1')

Le lien que je t'ai donné explique assez bien les choses (c'est en anglais mais malheureusement on n'y coupe pas).

répondu 8-Mar-2016 par Abject (148 points)
edité 8-Mar-2016 par Abject
...