python - 将数组转换为 MultiLabelBinarizer 的列表

标签 python arrays list scikit-learn

我有以下数组:“['book','read']”“['cup','drink']”等,我想将其转换为列表这将允许我申请 MultiLabelBinarizer .

目前它要么给我单个字符,要么只输出 0。

Y = train_labels.iloc[:, 0].values
values = np.array(Y)

mlb = MultiLabelBinarizer(classes=("drink","cup","book", "read"))
output = mlb.fit_transform(values)
print(output)  

预期结果:

[0 0 1 1]
[1 1 0 0]

实际结果:

 [0 0 0 0]
 [0 0 0 0]

最佳答案

我怀疑您需要注意 MultiLabelBinarizer 输入的正确格式。

y : iterable of iterables
A set of labels (any orderable and hashable object) for each sample.

证明:

txt = [['book', 'read'],['cup', 'drink']]
mlb = MultiLabelBinarizer(classes=("drink","cup","book", "read"))
mlb.fit_transform(txt)
array([[0, 0, 1, 1],
       [1, 1, 0, 0]])

请告诉我们这是否可以解决您的问题。

数据格式注意事项

您是否应该坚持将数据存储在您在帖子中指定的数组中:

arr = ["['book', 'read']","['cup', 'drink']"]

以下代码片段会将其转换为正确的格式:

import re
[["".join(re.findall("\w",f)) for f in lst] for lst in [s.split(",") for s in arr]]
[['book', 'read'], ['cup', 'drink']]

关于python - 将数组转换为 MultiLabelBinarizer 的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54552802/

相关文章:

python - 将 curl 翻译成 python urllib2

python - 如何用python请求url并下载文件夹?

arrays - Postgres JSONB : where clause for arrays of arrays

java - 输入字符串并在每次单击按钮时添加到列表中,同时显示输入的所有字符串

c - 为什么我的链表代码会导致段错误?

python - 如何在 django 中从组创建自定义组

python - 查找列表中的哪个数字总和为某个数字但带有负数和小数

javascript - 解析 Python 字典中的 javaScript 数组

java - 将已排序的子列表合并到已排序的 super 列表

C++ 结构列表 push_back 的问题