1

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

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

4

2 回答 2

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,则可以将 更改dtypeobject

>>> 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)
于 2012-12-04T05:40:20.847 回答
0

您可以使用标准 Python 进行连接,这样应该可以:

data_subset = original_data[:, [1, 3]]
data_subset[:, 1] += " " + original_data[:, 8]
于 2012-12-03T23:47:51.240 回答