当前位置: 首页 > 面试题库 >

在Numpy中,如何压缩两个二维数组?

傅阿苏
2023-03-14
问题内容

例如我有2个数组

a = array([[0, 1, 2, 3],
           [4, 5, 6, 7]])
b = array([[0, 1, 2, 3],
           [4, 5, 6, 7]])

我怎么能zip ab这样我得到

c = array([[(0,0), (1,1), (2,2), (3,3)],
           [(4,4), (5,5), (6,6), (7,7)]])


问题答案:

您可以使用dstack:

>>> np.dstack((a,b))
array([[[0, 0],
        [1, 1],
        [2, 2],
        [3, 3]],

       [[4, 4],
        [5, 5],
        [6, 6],
        [7, 7]]])

如果必须有元组:

>>> np.array(zip(a.ravel(),b.ravel()), dtype=('i4,i4')).reshape(a.shape)
array([[(0, 0), (1, 1), (2, 2), (3, 3)],
       [(4, 4), (5, 5), (6, 6), (7, 7)]],
      dtype=[('f0', '<i4'), ('f1', '<i4')])

对于Python 3+,您需要扩展zipiterator对象。请注意,这是非常低效的:

>>> np.array(list(zip(a.ravel(),b.ravel())), dtype=('i4,i4')).reshape(a.shape)
array([[(0, 0), (1, 1), (2, 2), (3, 3)],
       [(4, 4), (5, 5), (6, 6), (7, 7)]],
      dtype=[('f0', '<i4'), ('f1', '<i4')])


 类似资料:
  • 问题内容: 我有2个数组: 我想要得到的结果是: 看起来很简单,但我不知道。 我希望结果是一个数组,其中两个数组中的每个元素都压缩在一起。 问题答案: 使用方法:

  • 问题内容: 我有一个熊猫数据框。我尝试将包含字符串值的两列首先连接到列表中,然后使用zip,我将列表的每个元素都用’_’连接。我的数据集如下: 我想将这两列连接到第三列,如下所示,分别用于数据框的每一行。 我已经使用下面的代码在python中成功完成了此操作,但该数据框非常大,并且需要花费很长时间才能为整个数据框运行它。我想在PySpark中做同样的事情以提高效率。我已经成功读取了spark数据框

  • 问题内容: 我有两个列表,每个列表具有相等数量的项目。这两个列表如下所示: 我正在寻找一个看起来像这样的清单: 我试图使用这样的东西: 合并两个列表列表的最佳方法是什么?提前致谢。 问题答案:

  • 问题内容: 如果我有两个并行列表,并想按第一个中的元素顺序对其进行排序,则非常简单: 我如何使用numpy数组执行相同操作而又不将其拆包到常规Python列表中? 问题答案: 应该可以。 运作方式如下。首先,您需要找到排序为a的排列。是一种计算方法: 您可以轻松地检查这是否正确: 现在对b应用相同的排列。

  • 关于php数组合并的问题,如何把两个不同的二维数组,合并成一个二维数据?