Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在单个python数组中连接不同类型的功能?_Python_Arrays_Pandas_Scikit Learn - Fatal编程技术网

如何在单个python数组中连接不同类型的功能?

如何在单个python数组中连接不同类型的功能?,python,arrays,pandas,scikit-learn,Python,Arrays,Pandas,Scikit Learn,我有一个features数组,其中包含不同类型的值: >>> 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([Tr

我有一个features数组,其中包含不同类型的值:

>>> 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。在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'
,则布尔值将被强制转换为整数。你想不想,由你自己决定。通常不赞成使用对象数组,因为它们不提供矢量化/效率好处