python - 如何在单个Python数组中连接不同类型的特征?

标签 python arrays pandas scikit-learn

我有一个包含不同类型值的特征数组:

>>> features = train_df.values
>>> [x for x in features]

[True,
 array([2, 0, 0, ..., 0, 0, 0]),
 False,
 False,
 17,
 1,
 10,
 array([0, 0, 0, ..., 0, 0, 0])]

我想生成一个包含所有上述功能的串联的Python数组,即

np.array([True, 2, 0, 0, ..., 0, 0, 0, False, False, 17, 1, 10, 0, 0, 0, ..., 0, 0, 0])

我的目标是训练 sklearn LogisticRegression与上面的特征向量。在 python 中执行此操作的最佳方法是什么?

最佳答案

您可以通过简单的列表理解来完成此操作。

>>> x
[True, array([2, 0, 0, 0, 0, 0]), False, False, 17, 1, 10, array([0, 0, 0, 0, 0, 0])]

>>> [j for i in x for j in (i if isinstance(i, np.ndarray) else (i, ))]
[True, 2, 0, 0, 0, 0, 0, False, False, 17, 1, 10, 0, 0, 0, 0, 0, 0]

>>> np.array(_, dtype='O')
array([True, 2, 0, 0, 0, 0, 0, False, False, 17, 1, 10, 0, 0, 0, 0, 0, 0], dtype=object)

如果您不添加dtype='O',您的 bool 值将被转换为整数。这取决于你是否愿意。使用对象数组通常不受欢迎,因为它们不提供矢量化/效率优势。

关于python - 如何在单个Python数组中连接不同类型的特征?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46869943/

相关文章:

python - Beautifulsoup解析页表问题

javascript - 如果不实例化(new -'ing')它: var a = Array.prototype.slice.call(arguments),这怎么可能?

python - pandas:带有条件格式的 HTML 输出

python-3.x - 使用 scipy.stats.mstats.winsorize 对我的样本进行 1% 和 99% 的 winsorize 后,我的样本的最大值仍然大于 99% 时的值

python - 我将如何组合两个异步库?

python - Python 的 str.format() 方法的默认 kwarg 值

javascript - heroku python 和突出显示 js 不工作

javascript - 如何在javascript中合并子数组中的对象,以便在一个数组中留下多个对象

javascript - 对 JavaScript 对象进行条件查询以使用 JQuery 返回特定名称

python - 更快、对 Pandas 友好的方式来完成这个算法?