将 Numpy 数组映射到字符列表中



给定一个两个暗淡的 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]

相关内容

  • 没有找到相关文章

最新更新