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

标签 python arrays numpy

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

a=np.array([['a',1],['b',2]],dtype=object)

b=np.array([['b',3],['c',4]],dtype=object)

如何获得:

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,您的数组可能很大,并且您正在寻找性能更好的解决方案。在这种情况下,我建议使用一些真实的数据库来执行此操作,例如 sqlite3 module Python 自带的。

关于python - 在 Python 中,如何通过键列连接两个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4287582/

相关文章:

python - pip 不工作

python - 为什么它会在调用形状函数中调出局部变量 'size'?

javascript - 在 Highcharts 中运行总计

java - 为什么没有 java.lang.Array 类?如果java数组是一个Object,它不应该扩展Object吗?

python - Numpy ndarray 子类 - 在 __array_finalize__ 中强制 reshape

python - Theano 逻辑回归维度不匹配

python - 如何更新文本文件中给定章节中子章节的数量?

python - 检查变量是否在字典中并且变量是否等于字典键的更好方法是什么?

python - 如何使用 Python (pytwist) 获取 CSV 输出中字段的内容而不是 `<bound method...`

java - 在 Java 中检查越界