合并两个 numpy 数组

新手上路,请多包涵

我正在尝试合并两个具有相同数量参数的数组。

输入:

 first = [[650001.88, 300442.2,   18.73,  0.575,  650002.094, 300441.668, 18.775],
         [650001.96, 300443.4,   18.7,   0.65,   650002.571, 300443.182, 18.745],
         [650002.95, 300442.54,  18.82,  0.473,  650003.056, 300442.085, 18.745]]

second = [[1],
          [2],
          [3]]

我的预期输出:

 final = [[650001.88, 300442.2,   18.73,  0.575,  650002.094, 300441.668, 18.775, 1],
         [650001.96, 300443.4,   18.7,   0.65,   650002.571, 300443.182, 18.745, 2],
         [650002.95, 300442.54,  18.82,  0.473,  650003.056, 300442.085, 18.745, 3]]

为此,我创建了一个简单的循环:

 for i in first:
        for j in second:
            final += np.append(j, i)

我让我填补了我遗漏的东西。首先,我的循环非常慢。其次,我的数据相当多,我有超过 200 万行要循环。所以我试图用这段代码找到更快的方法:

 final = [np.append(i, second[0]) for i in first]

它的工作速度比以前的循环快得多,但它只附加第二个数组的第一个值。你能帮助我吗?

原文由 Losbaltica 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 629
2 个回答

使用 np.array 然后 np.concatenate

 import numpy as np

first = np.array([[650001.88, 300442.2,   18.73,  0.575,
                   650002.094, 300441.668, 18.775],
                  [650001.96, 300443.4,   18.7,   0.65,
                   650002.571, 300443.182, 18.745],
                  [650002.95, 300442.54,  18.82,  0.473,
                   650003.056, 300442.085, 18.745]])

second = np.array([[1],
                   [2],
                   [3]])

np.concatenate((first, second), axis=1)

其中 axis=1 表示我们要水平连接。

这对我行得通

原文由 mforezdev 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 np.column_stack

 import numpy as np

first = [[650001.88, 300442.2,   18.73,  0.575,  650002.094, 300441.668, 18.775],
         [650001.96, 300443.4,   18.7,   0.65,   650002.571, 300443.182, 18.745],
         [650002.95, 300442.54,  18.82,  0.473,  650003.056, 300442.085, 18.745]]

second = [[1],
          [2],
          [3]]

np.column_stack([first, second])

如果您需要它作为列表,请使用方法 tolist

 np.column_stack([first, second]).tolist()

原文由 user9389968 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题