Вы должны использовать numpy и функцию np.where()
:
import numpy as np
A = [2,1,1,2,1]
A = np.asarray(A)
ID = np.where(A == 2)[0]
Выход:
ID = array([0, 3], dtype=int64)
Затем вы можете работать с этим массивом, чтобы преобразовать его в список, сосчитать количество элементов, используя shape
или len
... и т. Д.
Чтобы вернуться к вашему коду:
A = [2,1,1,2,1]
uniqueCounts = list(set(A))
set
возвращает набор без дубликатов. преобразование его в список дает вам уникальные счета напрямую.
Вывод:
A = [2,1,1,2,1]
uniqueCounts = list(set(A))
A = np.asarray(A)
subgroup = list()
for elt in uniqueCounts:
subgroup.append(tuple(np.where(A == elt)[0]))
Для получения желаемого результата все еще требуется определенная работа, я дам вам это:)