我们如何将numpy数组的两列连接成一列,用空格分隔值?

时间:2012-12-03 23:38:02

标签: python numpy

我有一个numpy字符串数据数组,我目前正在用data_subset = original_data[:, [1, 3, 8]]提取它的一个子集。但是,我希望我的数据子集中的一列是我原始数据的两列组合,并用空格连接。

我想到的组合的一个例子如下。我有2列代表名字和姓氏。作为示例示例数据,第3列中的行为John,第4列中为Smith,但在我的新数据中,我需要一列John Smith。是否有一个很好的numpy函数来执行这样的连接?

2 个答案:

答案 0 :(得分:4)

我建议在这里使用pandas库而不是numpy - 对于字符串使用numpy数组通常比它的价值更麻烦。 OTOH,你想要的是pandas

非常简单
>>> from pandas import DataFrame
>>> df = DataFrame({"first": ["John", "Jane"], "last": ["Smith", "Jones"]})
>>> df
  first   last
0  John  Smith
1  Jane  Jones
>>> df["first"] + " " + df["last"]
0    John Smith
1    Jane Jones

如果您绝对想要使用numpy,那么如果您将dtype更改为object,则可以执行您想要的操作:

>>> import numpy as np
>>> a = np.array([["John", "Smith"], ["Jane", "Jones"]])
>>> a = a.astype(object)
>>> a[:,0] += " " + a[:,1]
>>> a = a[:,:1]
>>> a
array([[John Smith],
       [Jane Jones]], dtype=object)

答案 1 :(得分:0)

你可以使用标准的Python进行加入,这样的事情应该可行:

data_subset = original_data[:, [1, 3]]
data_subset[:, 1] += " " + original_data[:, 8]