2012-07-05 2 views
0

Est-il possible de fusionner des tableaux 2D en Python en utilisant numpy ou autre chose? J'ai environ 200 tableaux 2D, tous avec les mêmes dimensions (1024,256) et je veux les ajouter à l'extrémité inférieure de l'autre. La forme finale après l'ajout par ex. 3 d'entre eux devraient alors être (1024,768).Ajout/Fusion de tableaux 2D

Répondre

5

Trois tableaux de (1024,256) doivent être annexée à l'extrémité droite , pas la fin inférieure . Vous les empilez horizontalement côte à côte (1024 lignes, 256 colonnes).

En utilisant numpy.hstack (h comme horizontal):

lst est une liste de tableaux (numpy ou python) (1024,256):

numpy.hstack(lst) 

retourne un tableau numpy (1024,256*len(lst))

+0

Merci beaucoup! J'ai toujours mal compris le sens de l'horizontale! – Fourier

0

Il est tout à fait simple en effet, à condition que tous les tableaux aient la même taille.

>>> a = [[0,1,2],[3,4,5]] 
>>> b = [[6,7,8],[9,10,11]] 
>>> c = [a[i]+b[i] for i in xrange(len(a))] 
>>> c 
[[0, 1, 2, 6, 7, 8], [3, 4, 5, 9, 10, 11]] 

ou mieux

sum2darray = lambda a, b: [a[i]+b[i] for i in xrange(len(a))] 
c = sum2darray(a,b) 
+0

OP: * J'ai environ ** 200 ** tableaux 2D * – eumiro