Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.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_Python 2.7_Pandas - Fatal编程技术网

Python 如何将分类数据更改为二进制数据?

Python 如何将分类数据更改为二进制数据?,python,python-2.7,pandas,Python,Python 2.7,Pandas,我想把分类数据变成二进制数据。 我的数据是这样的 数据=[[1,2,3,…],[2,3,4,…],[3,8,5,…],…] 这里1和2没有任何联系,所以我必须将这些数字视为分类数据 import pandas as pd from sklearn.feature_extraction import DictVectorizer converted_val = data.T.to_dict().values() vectorizer = DictVectorizer(sparse=False

我想把分类数据变成二进制数据。 我的数据是这样的

数据=[[1,2,3,…],[2,3,4,…],[3,8,5,…],…]

这里1和2没有任何联系,所以我必须将这些数字视为分类数据

import pandas as pd

from sklearn.feature_extraction import DictVectorizer

converted_val = data.T.to_dict().values()

vectorizer = DictVectorizer(sparse=False)

vec_x = vectorizer.fit_transform( converted_val )
我期待的结果是:

[1,2,3,4,5,6,7,8

1,1,1,0,0,0,0,0

0,1,1,1,0,0,0,0

0,0,1,0,1,0,0,1

………]

任何能得到这个答案的帮助都将是非常好的,或者一些解决这个问题的建议将是非常感谢的


提前谢谢你

我想你想做一个向量,它表示每个值在输入向量中出现的次数,而不考虑值的位置。我的解决方案是使用
CountVectorizer
<代码>计数矢量器是为
字符串
设计的。要将
CountVectorizer
应用于数值向量,我将一些参数传递给下面的
CountVectorizer

import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer

data = pd.DataFrame([[1,2,30],[2,30,4],[3,8,5]])
converted_val = data.as_matrix()

vectorizer = CountVectorizer( lowercase=False, tokenizer = lambda x:x )

vec_x = vectorizer.fit_transform( converted_val )
按以下代码进行检查:

print(vectorizer.get_feature_names()) 
print(vec_x.toarray())
输出:

[1, 2, 3, 4, 5, 8, 30]
[[1 1 0 0 0 0 1]
 [0 1 0 1 0 0 1]
 [0 0 1 0 1 1 0]]