2차원 파이선 내부의 1차원 행렬 조작

다름이 아니라 파이선으로 클러스터링 하는 코드를 짜고 있습니다.
일단 초기 데이터가

a=[1,2,13,14,16,25,54,68,88,94,101,110,114,122,132,165,170]

이렇게 보여진다고 가정하고 군집화 코드를 작성하였습니다.

군집화 코드는 데이터 행렬과 최대 거리를 파라미터로 받아,
먼약 최대 거리 허용가능한 최대거리가 10이라 가정하면,
두 원소사이 거리가 10 이하일경우, 같은 array에 속하게 코딩을 했습니다.

위 예시의 결과는 다음과 같은 2차원 array로 표시됩니다.

[[1,2],[13,14,16,25],[54],[68],[88,94,101,110,114,122,132],[165,170]]

여기서 제가 하고자 하는것은
[54], [68]와 같은 길이가 1인 내부의 데이터를 제거하여
다음과 같은 결과를 얻고자 합니다

[[1,2],[13,14,16,25],[88,94,101,110,114,122,132],[165,170]]

이렇게 할려면 대충 a.pop을 써야겠다는 생각은 드는데..;
원하는 결과는 나오질 않습니다.

th = 10
g=[[a[0]]]
for i in a[1:] :
    if abs(i - g[-1][-1]) <= th:
        g[-1].append(i)
    else:
        g.append([i])

1답변

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.