我试图合并两个具有相同参数数的array.

输入:

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] 

它的工作速度比前一个循环快得多,但它只附加第二个数组的第一个值.

推荐答案

使用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表示我们希望水平连接.

这对我很管用

Python-3.x相关问答推荐

如何在Django中创建两个不同权限的用户?

在numpy. linalg的qr之后使用scipy. integrate中的solve_ivp时出现了一个奇怪的错误

如何有效地计算Kernel/Matrix

新行是pandas数据帧中旧行的组合

如何使用 Selenium Python 连续单击一个按钮直到另一个元素出现?

「Python Pandas」多级索引列和行匹配,如果列和行名称相似,则排除这些单元格中的值添加

如何根据索引子列表对元素列表进行分组或批处理?

需要找到完全匹配并使用正则表达式替换

我应该如何调整我的变量,以便如果有任何单词符合其中的条件,程序会将其附加到新列表中?

转换Pandas 数据框 - 添加行

python 3:如何判断一个对象是否是一个函数?

如何注释一个以另一个函数作为参数的函数?

使用 Sublime Text 3 在 Python 3 中打印 UTF-8

用 numpy nan 查找列表的最大值

在 Ubuntu 上为 Python3 安装 mod_wsgi

Python 的 unittest 和 unittest2 模块有什么区别?

为什么变量 = 对象不像变量 = 数字那样工作

调用 Python doctest 时如何启用省略号?

python asyncio add_done_callback 与 async def

在 Visual Studio Code 中调试 Scrapy 项目