Например, у нас есть упорядоченный список:
a = [1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4]
Я хочу перестановить этот массив в форму:
a = [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
В настоящее время я делаю:
a = np.array([1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4])
n_unique_elements = 4
arrays_with_same_elements = np.array_split(a, 5)
for idx in range(n_unique_elements):
final_list.append(list_similar_a[0][idx])
final_list.append(list_similar_a[1][idx])
final_list.append(list_similar_a[2][idx])
final_list.append(list_similar_a[3][idx])
final_list.append(list_similar_a[4][idx])
Итак, переменная
final_list = [0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
Должен быть pythonic
способ сделать это. Возможно встроенная функция в numpy
? Какие еще техники приходят на ум, чтобы решить эту проблему?