从列表列表创建每个唯一值的二进制矩阵

时间:2018-06-05 14:48:44

标签: python python-3.x numpy

此问题在概念上类似于此处的问题:Python Pandas: How to create a binary matrix from column of lists?,但由于我的数据大小,我不想转换为pandas数据框。

我有一个列表,如下所示,

list_ = [[5, 3, 5, 2], [6, 3, 2, 1, 3], [5, 3, 2, 5, 2]]

我想要一个二进制矩阵,每个唯一值作为一列,每个子列表作为一行。

如何在超过100000个子列表中有效地完成这些操作,每个子列表包含大约1000个项目?

编辑:

示例输出类似于上面链接的问题中的输出,其中列表基本上可以被视为:

list_ = [["a", "b"], ["c"], ["d"], ["e"]]

   a  b  c  d  e
0  1  1  0  0  0
1  0  0  1  0  0
2  0  0  0  1  0
3  0  0  0  0  1

1 个答案:

答案 0 :(得分:1)

使用sklearn的{​​{1}}

CountVectorizer

出于记忆原因,您可能希望将其保留为稀疏矩阵。