【问题标题】:How do I combine rowwise values of 2D Numpy array into one single column如何将 2D Numpy 数组的按行值组合成一列
【发布时间】:2019-01-18 14:00:50
【问题描述】:

我有一个 2D numpy 数组,如下所示

[['me' 'you']
 ['her' 'him']]

我想得到一个这样的numpy数组

['meyou'
'herhim']

应该是一维numpy数组

在速度方面我如何以最有效的方式做到这一点?

【问题讨论】:

  • 你怎么做,它是一个python字符串操作。即使使用 np.char。所以没有超快的数组方法。

标签: python python-3.x numpy concatenation string-concatenation


【解决方案1】:

使用 NumPy 的字符串操作简单地“添加”两列:

 np.char.add(x[:,0], x[:,1])

或者更一般地说,对于任意数量的列,这里有一个简单的解决方案(如果列的数量很大,这不是有效的):

from functools import reduce # not needed in Python 2
reduce(np.char.add, x.T)

【讨论】:

    【解决方案2】:

    您可以使用列表推导,从而将同一子列表中的所有值连接在一起:

    ["".join(i) for i in x]
    
    ['meyou', 'herhim']
    

    【讨论】:

    • 即使您考虑将其转换回 numpy 数组,它也比使用 numpy 方法更快
    猜你喜欢
    • 1970-01-01
    • 2020-11-05
    • 2011-06-19
    • 2021-01-10
    • 2012-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    相关资源
    最近更新 更多