मैं समझ रहा हूं

Index error: Tuple index out of range while doing one-hot encoding for smile string at line: 
    if ans.shape[1]<length:

उदाहरण:

smiles_string= ['C', 'C', '1', '=', 'C', 'C', '(', '=', 'C', 'N', '=', 'C', '1', 'C', '2', '=', 'C', 'C', '(', '=', 'N', 'C', '=', 'C', '2', ')', 'C', ')', 'C', 'C', '(', '=', 'O', ')', 'N', 'C', '3', '=', 'N', 'C', '=', 'C', '(', 'C', '=', 'C', '3', ')', 'C', '4', '=', 'N', 'C', '=', 'C', 'N', '=', 'C', '4']
char_list=['7', '2', '.', 'Br', 'Pt', '=', '[', 'F', '(', ')', 'O', '6', 'S', '5', '1', 'I', ']', '+', '8', '#', 'C', '3', 'B', '9', 'Cl', 'P', '-', '4', 'N']
def onehot_encode(char_list, smiles_string, length):
    encode_row = lambda char: map(int, [c == char for c in smiles_string])
    print(encode_row)
    ans = np.array(map(encode_row, char_list))
    if ans.shape[1] < length:
        residual = np.zeros((len(char_list), length - ans.shape[1]), dtype=np.int8)
        ans = np.concatenate((ans, residual), axis=1)
    return ans

मैंने डिबगिंग की कोशिश की और मैंने पाया, उत्तर सरणी का आकार () है, जो नहीं होना चाहिए।

अगर कोई इसे मैप करने और त्रुटि को हल करने के बारे में कोई विचार दे सकता है, तो इसकी सराहना की जाएगी।

पहले ही, आपका बहुत धन्यवाद।

0
data_coder 1 पद 2019, 21:21

1 उत्तर

आप .shape() को किसी ऐसी चीज़ पर कॉल कर रहे हैं जिसका कोई आकार नहीं है।

print(ans)
Out[1]: <map object at 0x000001E9352B8908>
0
Nicolas Gervais 1 पद 2019, 21:36
ठीक है धन्यवाद।
 – 
data_coder
1 पद 2019, 22:01