Pour fusionner deux matrices avec numpy on peut utiliser numpy.concatenate, illustration avec 2 matrices à une dimension:
>>> A = np.array(([1,2,3]))>>> B = np.array(([4,5,6]))>>> C = np.concatenate((A, B))>>> Carray([1, 2, 3, 4, 5, 6])
Avec deux matrices de dimensions (2,2):
>>> A = np.array(([1,2],[3,4]))>>> Aarray([[1, 2],[3, 4]])>>> B = np.array(([5,6],[7,8]))>>> Barray([[5, 6],[7, 8]])>>> C = np.concatenate((A, B))>>> Carray([[1, 2],[3, 4],[5, 6],[7, 8]])
On peut aussi specifier l'axe sur lequel fusionner les deux matrices:
>>> A = np.array(([1,2],[3,4]))>>> Aarray([[1, 2],[3, 4]])>>> B = np.array(([5,6],[7,8]))>>> Barray([[5, 6],[7, 8]])>>> C = np.concatenate((A, B), axis=1)>>> Carray([[1, 2, 5, 6],[3, 4, 7, 8]])>>> C = np.concatenate((A, B), axis=0)>>> Carray([[1, 2],[3, 4],[5, 6],[7, 8]])
Pour fusionner deux matrices de dimensions différentes par exemple A (2,2) et B (3,2) ce n'est possible que sur l'axe 0, illustration:
>>> A = np.array(([1,2],[3,4]))>>> Aarray([[1, 2],[3, 4]])>>> B = np.array(([5,6],[7,8],[9,10]))>>> Barray([[ 5, 6],[ 7, 8],[ 9, 10]])>>> C = np.concatenate((A, B), axis=0)>>> Carray([[ 1, 2],[ 3, 4],[ 5, 6],[ 7, 8],[ 9, 10]])>>> C = np.concatenate((A, B), axis=1)Traceback (most recent call last):File "<stdin>", line 1, in <module>ValueError: array dimensions must agree except for d_0
Pour une discussion sur la difference entre concatenate, c_ et r_ voir: python why use numpy.r_ instead of concatenate.
Références
| Liens | Site |
|---|---|
| numpy.concatenate | scipy doc |
| numpy.c | scipy doc |
What does the c underscore expression c_ do exactly? |
stackoverflow |
| python why use numpy.r_ instead of concatenate | stackoverflow |
