dtype = [('key', np.int), ('field', np.float)]
x = np.array([(1, 2), (2, 4), (3, 6), (4, np.NaN), (5, 10)], dtype=dtype)
y = np.array([(0, -5), (1, 0), (2, 5), (5, 20), (6, 25)], dtype=dtype)
join = np.lib.recfunctions.join_by('key', x, y, jointype='outer')
join.fill_value = np.NaN
join = join.filled()
for row in join:
    pass
объединение индексированного массива в Python