Ваш data
имеет ненужные измерения и смешивает массивы numpy и список. Наверное, лучше хранить свои данные в формате full_array
.
>>> import numpy as np
>>> from numpy import array
>>> full_array = np.squeeze(np.array(data))
>>> full_array
array([[['C', 'F', 'G'],
['C', 'F', 'G'],
['B', 'G', 'H'],
['C', 'H', None],
['E', 'I', None],
['A', 'E', None],
['E', 'J', None],
['B', 'C', 'I'],
['D', None, None]],
[['C', 'F', 'G'],
['C', 'F', 'G'],
['B', 'G', 'H'],
['C', 'H', None],
['E', 'I', None],
['E', 'J', None],
['A', 'E', None],
['B', 'C', 'I'],
['D', None, None]],
[['C', 'F', 'G'],
['C', 'F', 'G'],
['B', 'G', 'H'],
['C', 'H', None],
['E', 'I', None],
['B', 'C', 'I'],
['A', 'E', None],
['E', 'J', None],
['D', None, None]]], dtype=object)
>>> reshaped = full_array.reshape(full_array.shape[0], 3, -1)
>>> reshaped
array([[['C', 'F', 'G', 'C', 'F', 'G', 'B', 'G', 'H'],
['C', 'H', None, 'E', 'I', None, 'A', 'E', None],
['E', 'J', None, 'B', 'C', 'I', 'D', None, None]],
[['C', 'F', 'G', 'C', 'F', 'G', 'B', 'G', 'H'],
['C', 'H', None, 'E', 'I', None, 'E', 'J', None],
['A', 'E', None, 'B', 'C', 'I', 'D', None, None]],
[['C', 'F', 'G', 'C', 'F', 'G', 'B', 'G', 'H'],
['C', 'H', None, 'E', 'I', None, 'B', 'C', 'I'],
['A', 'E', None, 'E', 'J', None, 'D', None, None]]], dtype=object)
>>> answer = [list(filter(bool, set(a))) for b in reshaped for a in b]
>>> answer
[['H', 'F', 'C', 'G', 'B'], ['E', 'H', 'C', 'A', 'I'], ['E', 'C', 'I', 'D', 'J', 'B'], ['H', 'F', 'C', 'G', 'B'], ['E', 'H', 'C', 'J', 'I'], ['E', 'C', 'A', 'D', 'I', 'B'], ['H', 'F', 'C', 'G', 'B'], ['E', 'H', 'C', 'I', 'B'], ['E', 'A', 'D', 'J']]