在Python中,如何通过键列连接两个数组?

在Python中,如何通过键列连接两个数组?,python,arrays,numpy,Python,Arrays,Numpy,假设我有两个数组(将numpy作为np导入之后) 及 如何获得: c=np.array([['a',1,None],['b',2,3],['c',None,4]],dtype=object) 基本上,使用第一列作为键的联接 谢谢实现这一点的纯Python方法是 da = dict(a) db = dict(b) c = np.array([(k, da.get(k), db.get(k)) for k in set(da.iterkeys()).union(db.i

假设我有两个数组(将numpy作为np导入之后)

如何获得:

c=np.array([['a',1,None],['b',2,3],['c',None,4]],dtype=object)
基本上,使用第一列作为键的联接


谢谢

实现这一点的纯Python方法是

da = dict(a)
db = dict(b)
c = np.array([(k, da.get(k), db.get(k))
              for k in set(da.iterkeys()).union(db.iterkeys())])

但是如果您使用的是NumPy,那么您的阵列可能很大,并且您正在寻找性能更好的解决方案。在这种情况下,我建议使用一些真实的数据库来实现这一点,例如Python附带的数据库。

我找到的最佳解决方案是使用pandas,它可以很好地处理连接,pandas对象可以很容易地转换为numpy数组或从numpy数组转换过来。

这看起来像是一个非常具体的结果。特别是因为你不需要按特定顺序排列。你的数组有多大?你能使用+纯python(@Sven)吗,然后再使用numpy?我发现使用
sqlite3
是最好的。基于该模块构建功能对我来说是个奇迹。谢谢
c=np.array([['a',1,None],['b',2,3],['c',None,4]],dtype=object)
da = dict(a)
db = dict(b)
c = np.array([(k, da.get(k), db.get(k))
              for k in set(da.iterkeys()).union(db.iterkeys())])