Python - 需要Numpy加速

时间:2017-12-23 06:08:36

标签: python numpy hamming-code

我想知道我是否可以使用 numpy 来加速此代码......

代码实际上正在运行,但我知道可以用np.where做得更好,我试过但没有成功:)

对于每个syn位置,我想比较第一个位置(' 000',' 001' ...)上的字符串与变量综合症(转换为字符串)并得到匹配时第二个位置的int

如果我患有综合症' 100'我会得到4,所以我知道我要翻转8位码字中的第4位

def recover_data(noisy_data):

syn=[['000','none'],['001',6],['010',5],['011',3],['100',4],['101',0],['110',1],['111',2]]

for ix in range(noisy_data.shape[0]):
    unflip=0    #index that will be flipped

    for jx in range(len(syn)):
        if(syn[jx][0] == ''.join(syndrome.astype('str'))):
            unflip = syn[jx][1]
    if(str(unflip)!='none'):
        noisy_data[ix,unflip]=1-noisy_data[ix,unflip]

1 个答案:

答案 0 :(得分:0)

看起来像dictionary会有所帮助

syn=dict([['000','none'],['001',6],['010',5],['011',3],['100',4],['101',0],['110',1],['111',2]])

syn

{'000': 'none',
 '001': 6,
 '010': 5,
 '011': 3,
 '100': 4,
 '101': 0,
 '110': 1,
 '111': 2}

syn.get('011')  # .get(key) will return None if the key isn't in the dict

3