我有一个 numpy 字符串数据数组,我目前正在使用data_subset = original_data[:, [1, 3, 8]]
. 但是,我希望我的数据子集中的一列是我的原始数据的两列组合,并用空格连接。
我正在考虑的组合示例如下。我有 2 列代表名字和姓氏。作为示例数据,行将John
在第 3 列和Smith
第 4 列中,但在我的新数据中,我想要一个列John Smith
。是否有一个很好的 numpy 函数来执行这样的连接?
我建议使用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)
您可以使用标准 Python 进行连接,这样应该可以:
data_subset = original_data[:, [1, 3]]
data_subset[:, 1] += " " + original_data[:, 8]