Я ищу быстрый способ сделать следующее: скажем, у меня есть массив
X = np.array([1,1,1,2,2,2,2,2,3,3,1,1,0,0,0,5])
Вместо простой частоты элементов я ищу частоту в ряду. Итак, первая 1 повторяется 3 раза, затем 2 5 раз, затем 3 2 раза и т. Д. Так что, если freq
является моей функцией, то:
Y = freq(X)
Y = np.array([[1,3],[2,5],[3,2],[1,2],[0,3],[5,1]])
Например, я могу написать это с помощью таких циклов:
def freq(X):
i=0
Y=[]
while i<len(X):
el = X[i]
el_count=0
while X[i]==el:
el_count +=1
i+=1
if i==len(X):
break
Y.append(np.array([el,el_count]))
return np.array(Y)
Я ищу более быстрый и приятный способ сделать это. Спасибо!