Python의 목록에서 이상 값을 빠르게 제거 하시겠습니까?

조지 오웰

다음과 같은 구조를 가진 긴 시간 및 온도 값 목록이 있습니다.

list1 = [[1, 72], [2, 72], [3, 73], [4, 72], [5, 74], [6, 73], [7, 71], [8, 92], [9, 73]]

일부 시간 / 온도 쌍은 데이터의 잘못된 스파이크입니다. 예를 들어 8 시간에 92도까지 급등했습니다. 이러한 갑작스런 온도 상승이나 급격한 감소를 제거하고 싶습니다.

이를 위해 다음 코드를 작성했습니다 (필요하지 않은 항목을 제거하고 스파이크 / 이상 값을 제거하는 부분 만 복사했습니다).

outlierpercent = 3

for i in values:
    temperature = i[1]
    index = values.index(i)
    if index > 0:
        prevtemp = values[index-1][1]
        pctdiff = (temperature/prevtemp - 1) * 100
        if abs(pctdiff) > outlierpercent:
            outliers.append(i)

이것이 작동하는 동안 (스파이크로 간주되는 데 필요한 최소 백분율 차이를 설정할 수 있음 outlierpercent) 매우 오랜 시간이 걸립니다 (목록 당 5-10 분). 내 목록은 매우 길고 (각각 약 5 백만 개의 데이터 요소) 수백 개의 목록이 있습니다.

이 작업을 수행하는 더 빠른 방법이 있는지 궁금합니다. 여기서 나의 주요 관심사는 시간입니다. 이와 같은 다른 유사한 질문이 있지만,이 구조의 매우 긴 목록에는 매우 효율적이지 않은 것 같아서 어떻게해야할지 모르겠습니다! 감사!

curious_guy
outlierpercent = 3

for index in range(1, len(values)):
    temperature = values[index][1]
    prevtemp = values[index-1][1]

    pctdiff = (temperature/prevtemp - 1) * 100
    if abs(pctdiff) > outlierpercent:
        outliers.append(index)

이것은 시간이 지남에 따라 훨씬 나아질 것입니다.

최신 정보:

첫 번째 이상 값 만 제거되는 문제는 이상 값을 제거한 후 다음 반복에서 제거 된 이상 값 ( prevtemp = values[index-1][1]) 의 온도를 비교하기 때문 입니다.

나는 당신이 이전 온도를 더 잘 처리함으로써 그것을 피할 수 있다고 믿습니다. 이 같은:

outlierpercent = 3
prevtemp = values[0][1]

for index in range(1, len(values)):
    temperature = values[index][1]

    pctdiff = (temperature/prevtemp - 1) * 100
    # outlier - add to list and don't update prev temp
    if abs(pctdiff) > outlierpercent:
        outliers.append(index)
    # valid temp, update prev temp
    else:
        prevtemp = values[index-1][1]

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

pygtk의 목록 및 트리에서 항목을 동적으로 추가하거나 제거하고 빠르게 (글 레이드)

분류에서Dev

Erlang의 목록에서 모든 값을 제거 하시겠습니까?

분류에서Dev

Array.splice (index, 1) 둘 이상의 항목을 제거 하시겠습니까?

분류에서Dev

목록 상자에서 두 개 이상의 항목을 제거하려면 어떻게해야합니까?

분류에서Dev

'음성'이 아닌 목록에서 항목을 제거 하시겠습니까?

분류에서Dev

Python의 목록 목록에서 이상 값 제거

분류에서Dev

Python의 중첩 목록에서 역 중복을 제거하는 시간을 절약 하시겠습니까?

분류에서Dev

R의 데이터베이스에서 ""을 제거 하시겠습니까?

분류에서Dev

Python의 중첩 목록에서 연속 중복을 제거 하시겠습니까?

분류에서Dev

텍스트 영역 양식에서 세 개 이상의 캐리지 리턴을 제거 하시겠습니까?

분류에서Dev

마이너스 기호를 유지하면서 특정 열의 숫자 값을 제거 하시겠습니까?

분류에서Dev

파이썬의 사전에서 특정 항목을 제거 하시겠습니까?

분류에서Dev

pyMongo 및 MongoEngine을 사용하여 색인이있는 MongoDb의 목록에서 객체를 제거 하시겠습니까?

분류에서Dev

linq 목록에서 중복을 제거 하시겠습니까?

분류에서Dev

char에서 목록을 만들고 Python에서 요소를 제거 하시겠습니까?

분류에서Dev

전자 상거래 사이트에 제품을 어떻게 나열 하시겠습니까?

분류에서Dev

Microsoft Word에서 새 최상위 제목을 빠르게 추가하는 방법

분류에서Dev

목록 파이썬의 단일 목록에서 하위 목록을 제거

분류에서Dev

Python을 사용하여 극지 레이더 데이터를 빠르게 플로팅 하시겠습니까?

분류에서Dev

Python을 사용하여 극지 레이더 데이터를 빠르게 플로팅 하시겠습니까?

분류에서Dev

Python에서 하위 목록이 고르지 않을 때 중복 된 하위 목록 제거

분류에서Dev

Python에서 하위 목록이 고르지 않을 때 중복 된 하위 목록 제거

분류에서Dev

두 개의 다른 목록에서 중복 행을 제거 하시겠습니까?

분류에서Dev

목록에서 특정 형식의 문자열을 제거 하시겠습니까?

분류에서Dev

Excel에서 의사 공백을 제거 하시겠습니까?

분류에서Dev

빠르게 목록에서 특정 단어를 포함하는 문자열을 제거하는 방법

분류에서Dev

2D 목록, 파이썬에서 연속 중복을 제거 하시겠습니까?

분류에서Dev

클론에서 레이블을 제거 하시겠습니까?

분류에서Dev

Opencart-특정 페이지에서 항목을 제거 하시겠습니까?

Related 관련 기사

  1. 1

    pygtk의 목록 및 트리에서 항목을 동적으로 추가하거나 제거하고 빠르게 (글 레이드)

  2. 2

    Erlang의 목록에서 모든 값을 제거 하시겠습니까?

  3. 3

    Array.splice (index, 1) 둘 이상의 항목을 제거 하시겠습니까?

  4. 4

    목록 상자에서 두 개 이상의 항목을 제거하려면 어떻게해야합니까?

  5. 5

    '음성'이 아닌 목록에서 항목을 제거 하시겠습니까?

  6. 6

    Python의 목록 목록에서 이상 값 제거

  7. 7

    Python의 중첩 목록에서 역 중복을 제거하는 시간을 절약 하시겠습니까?

  8. 8

    R의 데이터베이스에서 ""을 제거 하시겠습니까?

  9. 9

    Python의 중첩 목록에서 연속 중복을 제거 하시겠습니까?

  10. 10

    텍스트 영역 양식에서 세 개 이상의 캐리지 리턴을 제거 하시겠습니까?

  11. 11

    마이너스 기호를 유지하면서 특정 열의 숫자 값을 제거 하시겠습니까?

  12. 12

    파이썬의 사전에서 특정 항목을 제거 하시겠습니까?

  13. 13

    pyMongo 및 MongoEngine을 사용하여 색인이있는 MongoDb의 목록에서 객체를 제거 하시겠습니까?

  14. 14

    linq 목록에서 중복을 제거 하시겠습니까?

  15. 15

    char에서 목록을 만들고 Python에서 요소를 제거 하시겠습니까?

  16. 16

    전자 상거래 사이트에 제품을 어떻게 나열 하시겠습니까?

  17. 17

    Microsoft Word에서 새 최상위 제목을 빠르게 추가하는 방법

  18. 18

    목록 파이썬의 단일 목록에서 하위 목록을 제거

  19. 19

    Python을 사용하여 극지 레이더 데이터를 빠르게 플로팅 하시겠습니까?

  20. 20

    Python을 사용하여 극지 레이더 데이터를 빠르게 플로팅 하시겠습니까?

  21. 21

    Python에서 하위 목록이 고르지 않을 때 중복 된 하위 목록 제거

  22. 22

    Python에서 하위 목록이 고르지 않을 때 중복 된 하위 목록 제거

  23. 23

    두 개의 다른 목록에서 중복 행을 제거 하시겠습니까?

  24. 24

    목록에서 특정 형식의 문자열을 제거 하시겠습니까?

  25. 25

    Excel에서 의사 공백을 제거 하시겠습니까?

  26. 26

    빠르게 목록에서 특정 단어를 포함하는 문자열을 제거하는 방법

  27. 27

    2D 목록, 파이썬에서 연속 중복을 제거 하시겠습니까?

  28. 28

    클론에서 레이블을 제거 하시겠습니까?

  29. 29

    Opencart-특정 페이지에서 항목을 제거 하시겠습니까?

뜨겁다태그

보관