2011-10-15 23 views

cevap

12

, sen yapısal diziler ve lib.recfunctions.join_by fonksiyonunu (http://pyopengl.sourceforge.net/pydoc/numpy.lib.recfunctions.html bakınız) kullanabilirsiniz. Küçük bir örnek:

In [1]: import numpy as np 
    ...: import numpy.lib.recfunctions as rfn 
    ...: a = np.array([(1, 10.), (2, 20.), (3, 30.)], dtype=[('id', int), ('A', float)]) 
    ...: b = np.array([(2, 200.), (3, 300.), (4, 400.)], dtype=[('id', int), ('B', float)]) 

In [2]: rfn.join_by('id', a, b, jointype='inner', usemask=False) 
Out[2]: 
array([(2, 20.0, 200.0), (3, 30.0, 300.0)], 
     dtype=[('id', '<i4'), ('A', '<f8'), ('B', '<f8')]) 

Diğer bir seçenek panda kullanmaktır (documentation). Onunla hiçbir deneyimim yok, ama standart numpy'den daha güçlü veri yapıları ve işlevsellik sağlıyor, “hem ilişkisel hem de“ etiketli ”verilerle çalışmayı kolay ve sezgisel hale getiriyor. Ve kesinlikle birleştirme ve birleştirme işlevleri var (örneğin, bkz. http://pandas.sourceforge.net/merging.html#joining-on-a-key).

+0

Ah, "recfunctions" hakkında unuttum. Şu anda pandaları değerlendiriyorum ... pek çok seçenek ... Teşekkürler. – hatmatrix

İlgili konular