如何将numpy字符串数组转换为numpy数组,以使用MultiLabelBinarizer?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将numpy字符串数组转换为numpy数组,以使用MultiLabelBinarizer?相关的知识,希望对你有一定的参考价值。

我有一个像这样的numpy数组:

l1 = (['United States', 'England', 'South Africa']). 

有时它可能有> 1值:

l1 = ([['United States','South Korea'], 'England', 'South Africa'])

我想使用MultiLabelBinarizer来编码这些值。根据scikit-learn文档中的fit_transform文档。参数应该是

y:iterable of iterables每个样本的一组标签(任何可订购和可散列对象)。如果设置了classes参数,则不会迭代y。

如何将这个numpy列表和单个字符串数组转换为集合?

我试过这个:

value = [set(v) for v in l1]
list_2sets = np.asarray(value)

但它似乎无法正常工作。

问题是我没有考虑价值(所有国家)。如果我有这个,我尝试了以下工作:

 mlb.fit_transform(headings.split(', ') for headings in l1)

作为标题列出了所有考虑的价值观:

['England','Spain', ...]

但到目前为止我还没有这些价值观,所以我想尝试在没有“标题”的情况下应用MLB

答案

尝试预处理字符串数组,如下所示:

In [50]: l1 = [[x] if isinstance(x, (str)) else x for x in l1]

In [51]: l1
Out[51]: [['United States', 'South Korea'], ['England'], ['South Africa']]

对于Python 2.x:

In [50]: l1 = [[x] if isinstance(x, (str, unicode)) else x for x in l1]

In [51]: l1
Out[51]: [['United States', 'South Korea'], ['England'], ['South Africa']]

以上是关于如何将numpy字符串数组转换为numpy数组,以使用MultiLabelBinarizer?的主要内容,如果未能解决你的问题,请参考以下文章

将字符串转换为numpy数组

如何将 numpy 对象数组转换为 str/unicode 数组?

将浮点 numpy 数组转换为字符串数组 Python

如何将包含字符串列表的 numpy 数组转换为包含零和一列表的数组?

如何将包装为字符串的向量转换为熊猫数据框中的numpy数组?

如何使用 matplotlib/numpy 将数组保存为灰度图像?