如何将数组合并为单个?

时间:2017-04-21 10:07:11

标签: python arrays python-3.x numpy merge

我正在尝试将此数组转换为单个数组。 我的意见:

a = [[ array([  3.00514850e+05,   3.32400000e+01,   2.71669002e-01,
         6.50974961e+05,   3.00515112e+05,   3.32248995e+01])
  array([ 15.])]
 [ array([  3.00915200e+05,   2.90600000e+01,   2.91730634e-01,
         6.50763121e+05,   3.00915412e+05,   2.91246275e+01])
  array([ 17.])]

我想要实现的目标:

 b = [[  3.00514850e+05,   3.32400000e+01,   2.71669002e-01,
         6.50974961e+05,   3.00515112e+05,   3.32248995e+01, 15.]
       [  3.00915200e+05,   2.90600000e+01,   2.91730634e-01,
         6.50763121e+05,   3.00915412e+05,   2.91246275e+01, 17.]]

所以我的计划是首先将我的阵列转换为单个阵列,将两个阵列分成单独的阵列,然后将它们附加在一起。我真的觉得我过于复杂了。

我使用 b = a.transpose()将所有值从小数组放到最后。之后,我尝试使用 c,d =([i] for i in b)将其拆分为数组,然后我的计划是使用 output = np.append(c, d)

但我的功能c,d trowing错误"太多的值要解包(预期2)"

有没有更好的方法呢?我究竟做错了什么?你能救我吗?

1 个答案:

答案 0 :(得分:3)

因此,您尝试连接列表a的所有子列表中的数组。您可以使用内置函数map执行此操作:

a = [[np.array([3.00514850e+05, 3.32400000e+01, 2.71669002e-01,
                6.50974961e+05, 3.00515112e+05, 3.32248995e+01]), np.array([15.])],
     [np.array([3.00915200e+05, 2.90600000e+01, 2.91730634e-01,
                6.50763121e+05, 3.00915412e+05, 2.91246275e+01]), np.array([17.])]]
a = np.array(a)
result = np.array(list(map(np.concatenate,a)))