繁体   English   中英

将列添加到2D列表

[英]Adding a column to a 2D list

我有一个二维数组列表

  array( [ 988,  389],
         [ 986,  389],
         [ 985,  388],
         [ 977,  388],
         [ 976,  387]], dtype=int32)

还有另一个清单

 array( [ 149.68299837],
        [ 149.25481567],
        [ 150.029997  ],
        [ 148.63714206],
        [ 149.48244044]])

我试图使用连接这两个列表

  trail = list(map(list,zip(two_d_array,concat)))
  trail = np.vstack(trail)

这给我

  array([array([988, 389], dtype=int32), array([ 149.68299837])],
        [array([986, 389], dtype=int32), array([ 149.25481567])],
        [array([985, 388], dtype=int32), array([ 150.029997])],
        [array([977, 388], dtype=int32), array([ 148.63714206])],
        [array([976, 387], dtype=int32), array([ 149.48244044])]], dtype=object)

我如何删除所有数组和dtype并仅显示数字

     [ 988,  389,149.68299837],
     [ 986,  389,149.25481567],
     [ 985,  388, 150.029997],
     [ 977,  388,148.63714206],
     [ 976,  387,149.48244044]

要对两个数组进行复制n粘贴,我必须在开始时使用[结果是2个2d数组

In [165]: twod.shape
Out[165]: (5, 2)
In [166]: oned.shape
Out[166]: (5, 1)

一个简单的串联作品

In [164]: np.concatenate((twod, oned),axis=1)
Out[164]: 
array([[ 988.        ,  389.        ,  149.68299837],
       [ 986.        ,  389.        ,  149.25481567],
       [ 985.        ,  388.        ,  150.029997  ],
       [ 977.        ,  388.        ,  148.63714206],
       [ 976.        ,  387.        ,  149.48244044]])

请注意,所有内容现在都处于浮动状态。

您的列表列表calc生成的列表如下:

[[array([988, 389]), array([ 149.68299837])],
 [array([986, 389]), array([ 149.25481567])],
 [array([985, 388]), array([ 150.029997])],
 ....

子列表包含2个不同长度的数组。 hstack代替list会产生一个可以vstacked的列表

In [173]: temp = list(map(np.hstack, zip(twod, oned.ravel())))
In [174]: temp
Out[174]: 
[array([ 988.        ,  389.        ,  149.68299837]),
 array([ 986.        ,  389.        ,  149.25481567]),
 array([ 985.      ,  388.      ,  150.029997]),
....

我喜欢np.c_和np.column_stack(@Divakar建议),因为我不太关心计时,但我对它在视觉上如何“看起来”以理解目的更感兴趣...

>>> a = np.arange(10).reshape(5, 2)
>>> b = np.arange(10,15)
>>> c = np.c_[a,b]
>>> a
array([[0, 1],
       [2, 3],
       [4, 5],
       [6, 7],
       [8, 9]])
>>> b
array([10, 11, 12, 13, 14])
>>> c
array([[ 0,  1, 10],
       [ 2,  3, 11],
       [ 4,  5, 12],
       [ 6,  7, 13],
       [ 8,  9, 14]])
>>> np.column_stack((a,b))
array([[ 0,  1, 10],
       [ 2,  3, 11],
       [ 4,  5, 12],
       [ 6,  7, 13],
       [ 8,  9, 14]])

数组a和b很明显。 我只需要记住做np.c_方括号(np.c_ [堆叠这些],当然,按列堆叠对我也是有意义的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM