NumPy中的SQL join或R的merge()函数?

发布于 2021-01-29 18:24:08

有没有一种实现可以根据其键将两个数组连接在一起?说到哪一种,是将密钥存储在NumPy列之一中的规范方法(NumPy没有’id’或’rownames’属性)?

关注者
0
被浏览
50
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    如果只想使用numpy,则可以使用 结构化数组
    lib.recfunctions.join_by函数(请参见http://pyopengl.sourceforge.net/pydoc/numpy.lib.recfunctions.html)。一个小例子:

    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')])
    

    另一种选择是使用 pandas
    文档)。我没有经验,但是它提供了比标准numpy更强大的数据结构和功能,“使使用“关系”或“标签”数据既简单又直观”。而且它当然具有联接和合并功能(例如,请参见http://pandas.sourceforge.net/merging.html#joining-
    on-a-key
    )。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看