我有一个numpy字符串数据数组,我目前正在用data_subset = original_data[:, [1, 3, 8]]
提取它的一个子集。但是,我希望我的数据子集中的一列是我原始数据的两列组合,并用空格连接。
我想到的组合的一个例子如下。我有2列代表名字和姓氏。作为示例示例数据,第3列中的行为John
,第4列中为Smith
,但在我的新数据中,我需要一列John Smith
。是否有一个很好的numpy函数来执行这样的连接?
答案 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]