2009-11-10 16 views

Répondre

6

Utilisation numpy.hstack():

>>> import numpy 
>>> desc = {'names': ('gender','age','weight'), 'formats': ('S1', 'f4', 'f4')} 
>>> a = numpy.array([('M',64.0,75.0),('F',25.0,60.0)], dtype=desc) 
>>> numpy.hstack((a,a)) 
array([('M', 64.0, 75.0), ('F', 25.0, 60.0), ('M', 64.0, 75.0), 
     ('F', 25.0, 60.0)], 
     dtype=[('gender', '|S1'), ('age', '<f4'), ('weight', '<f4')]) 
0
for i in array1: 
    array2.append(i) 

Ou (si elles sont appliquées)

array1.extend(array2) 

maintenant array1 contient également tous les éléments de array2

0
#!/usr/bin/env python 
import numpy as np 
desc = {'names': ('gender','age','weight'), 'formats': ('S1', 'f4', 'f4')} 
a = np.array([('M',64.0,75.0),('F',25.0,60.0)], dtype=desc) 
b = np.array([('M',64.0,75.0),('F',25.0,60.0)], dtype=desc) 
alen=a.shape[0] 
blen=b.shape[0] 
a.resize(alen+blen) 
a[alen:]=b[:] 

Cela fonctionne avec des réseaux structurés, mais pas recarrays. C'est peut-être une bonne raison de rester avec des tableaux structurés.

+0

Y at-il une raison pour laquelle cela ne fonctionne pas avec recarrays? Je pensais que les recarrays n'étaient que des tableaux structurés avec un argument supplémentaire __getattribute __/__ setattr__? – astrofrog

+0

Je ne sais pas pourquoi. Je sais seulement que lorsque j'essaie la même chose avec recarrays, j'obtiens un ValueError: je ne peux pas redimensionner ce tableau: il ne possède pas ses propres données. Ayant rencontré des problèmes comme celui-ci avec recarrays dans le passé, j'ai tendance à utiliser des tableaux structurés au lieu de recarrays. Le sucre syntaxique n'en vaut pas la peine. – unutbu