给定一个两个暗淡的 numpy 数组:
a = array([[-1, -1],
[-1, 1],
[ 1, 1],
[ 1, 1],
[ 1, 0],
[ 0, -1],
[-1, 0],
[ 0, -1],
[-1, 0],
[ 0, 1],
[ 1, 1],
[ 1, 1]])
和转换词典:
d = {-1:'a', 0:'b', 1:'c'}
如何将原始数组映射到字符组合列表中?
我需要的是以下列表(或数组)
out_put = ['aa', 'ac', 'cc', 'cc','cb', 'ba', ....)
(我正在做一些机器学习分类,我的类被标记为 -1、0,1 的组合,我需要将"标签"数组转换为可读的东西,如"aa"、"bc"等)。
如果 sklearn 包中有一个简单的函数(二进制器或单热编码),可以将原始的颠簸数组转换为一组标签,那就完美了!
这是另一种列表理解的方法:
my_dict = {-1:'a', 0:'b', 1:'c'}
out_put = ["".join([my_dict[val] for val in row]) for row in a]
我认为
你应该能够通过列表理解来做到这一点
# naming something `dict` is a bad idea
d = {-1:'a', 0:'b', 1:'c'}
out_put = ['%s%s' % (d[x], d[y]) for x, y in a]
我认为以下内容非常可读:
def switch(row):
dic = {
-1:'a',
0:'b',
1:'c'
}
return dic.get(row)
out_put = [switch(x)+switch(y) for x,y in a]