Friday 2 February 2018

플롯 이동 평균 파이썬


나는 이것이 낡은 질문이라는 것을 알고있다. 그러나 여기에 여분의 데이터 구조 나 라이브러리를 사용하지 않는 해결책이있다. 입력리스트의 요소의 수는 선형 적이며 실제로는 더 효율적으로 만들 수있는 다른 방법을 생각할 수 없다. 누구든지 결과를 할당하는 더 나은 방법을 알고, 알려 주시기 바랍니다. 참고 목록이 아니라 numpy 배열을 사용하여 훨씬 더 빠를 것이지만 모든 종속성을 제거하려면 싶었어요 또한 멀티 스레드로 성능을 향상시킬 수 있습니다. 함수는 입력리스트가 1 차원이라고 가정하므로 조심하십시오. UPD는 Alleo와 jasaarim에 의해 제안 된보다 효율적인 솔루션을 제공합니다. 당신은 그것을 사용할 수 있습니다. mode 인수는 가장자리를 처리하는 방법을 지정합니다. 여기서 유효한 모드를 선택했습니다. 왜냐하면 대부분의 사람들이 일하는 것을 의미한다고 생각하기 때문입니다. 하지만 다른 우선 순위가있을 수 있습니다. 모드 간의 차이를 보여주는 플롯이 있습니다. 3 월 24 일 22시 01 분. 이 솔루션은 깨끗한 한 줄이기 때문에 마음에 듭니다. 및 r 효율적으로 작업하는 것이 numpy 내부에서 행해지지만 Alleo s 효율적인 솔루션을 사용하면 더 좋은 복잡성을 갖음 Ulrich Stern Sep 25 15 at 0 31. 달리 말하면 평균을 계산할 수 있습니다. 다행스럽게도 numpy에는 일을 빠르게하는 데 사용할 수있는 convolve 함수가 포함되어 있습니다. x를 N 길이의 벡터로 컨버전하는 것과 같습니다. 모든 멤버는 1 N입니다. convolve의 numpy 구현은 시작 과도를 포함하므로 첫 번째 N-1 점을 제거해야합니다. 내 컴퓨터에서 빠른 버전은 다음과 같습니다. 입력 벡터의 길이와 평균화 윈도우의 크기에 따라 20-30 배 더 빠릅니다. convolve에는 시작 과도 문제를 처리해야하는 것과 같은 모드가 포함되어 있지만 처음부터 끝까지 분할됩니다. 그것은 과도기를 끝에서 제거합니다. 그리고 처음에는 하나도 없습니다. 우선 순위가 중요하다고 생각합니다. 데이터에없는 제로를 향한 기울기를 희생해서 동일한 수의 결과가 필요하지 않습니다. BTW, 다음은 모드 전체, 동일, 유효한 플롯의 차이를 보여주는 명령입니다. 200, 1, 50, 50, 모드 m, 모드 -10, 251, -1, 1 모드 범례 모드, 센터와 pyplot 및 numpy 수입 lapis Mar 24 14 at 13 56.pandas NumPy 또는 SciPy보다 더 적합합니다. rollingMan이 작업을 편리하게 처리합니다. 또한 입력이 배열 인 경우 NumPy 배열을 반환합니다. 어떤 사용자 정의 순수한 파이썬 구현과 성능에 다음은 제안 된 솔루션 중 두 가지에 대한 예제 성능입니다. 또한 가장자리 값을 처리하는 방법에 대한 좋은 옵션이 있습니다. 나는 항상 다른 모양의 출력 신호를 반환하는 신호 처리 기능에 짜증이났습니다. 입력과 출력이 같은 성질을 가졌을 때의 입력 신호보다 예를 들어 시간 신호 둘 다 관련 독립 변수 (예 : 시간, 주파수, 플로팅 또는 비교를 만드는 어차피 직접적인 문제는 아닙니다. 당신이 제안한 함수의 마지막 라인을 같은 리턴 값으로 바꾸고 싶을 수도 있습니다. Christian O Reilly 8 월 25 일 15시 19 분 56 초. 파티에 늦었지만, 내 자신을 만들었습니다. 끝을 감싸지 않는 작은 함수 또는 평균을 찾는 데 사용되는 0이있는 패드 추가 처리는 선형 간격의 포인트에서 신호를 다시 샘플링하는 것입니다. 다른 기능을 사용하기 위해 코드를 사용자 정의하십시오. 이 방법은 정규화 된 가우시안 커널을 사용한 간단한 행렬 곱셈입니다. 정규 분포 잡음이 추가 된 사인파 신호의 간단한 사용법입니다. 이 질문은 NeXuS가 지난 달에 대해 썼을 때보 다 더 오래되었지만 코드가 어떻게 다루는지를 좋아합니다. edge cases 그러나 단순한 이동 평균이기 때문에 적용된 데이터보다 뒤쳐지는 결과를 보았습니다. 유사한 접근 방식을 적용하여 NumPy s 모드가 동일하고 유효하다는 것보다 더 만족스러운 방식으로 엣지 케이스를 처리 할 수 ​​있다고 생각했습니다 컨볼 루션 바스에 내 기여도는 중앙 실행 평균을 사용하여 결과를 데이터와 정렬합니다. 전체 크기 창을 사용할 수있는 몇 가지 포인트가 2 개있을 때, 연속 평균은 배열의 가장자리에서 연속적으로 작은 창에서 계산됩니다. 실제로, 연속적으로 더 큰 윈도우에서부터 구현 된 세부 사항입니다. 컨볼 루션을 사용하고 진정한 파이썬 티 스터 (Pythonista)에 의해 상당히 복잡해질 수 있기 때문에 상대적으로 느립니다. 그러나 나는 그 아이디어가 1 월 2 일 0 28에 응답한다고 믿습니다. 창의 너비가 커지면 멋지지만 느린 경우가 있습니다. 일부 답변은 더 효율적인 알고리즘을 제공하지만 가장자리 값을 처리 할 수없는 것처럼 보입니다. 이 문제가 as. Input 매개 변수 mergenum으로 선언 될 수 있다면이 문제를 잘 처리 할 수있는 알고리즘을 구현했습니다. 2 windowwidth 1. 나는이 코드가 유용하다는 것을 알았고 몇 가지 확장을 원한다면이 코드를 읽을 수 없다는 것을 알고있다. 내게 알려주고이 대답을 업데이트 할 것이다. 많은 시간을 필요로 할 때만 나는 그것을 할 수 있기를 바랍니다. 제 게으름 때문에 용서 해주십시오. 오직 유가 원래 버전에 관심이 있다면. 첫 번째 해결책은 주변의 0을 패딩하여 가장자리 문제를 없애 버립니다. 배열하지만, ​​여기에 게시 된 두 번째 해결 방법은 힘들고 직접적인 방법으로 처리합니다. 마지막 문장에서 왜 부동 소수점 오류에 도움이되는지 나타 내기 위해 노력했습니다. 두 값이 대략 동일한 차수라면 그 값을 더하면 정밀도가 떨어집니다. 매우 작은 숫자에 매우 큰 숫자를 추가 한 경우 코드는 인접한 값을 결합하여 중간 크기의 합계도 크기가 항상 합리적으로 근접해야 부동 소수점 오류를 최소화합니다. 아무 것도 증명할 수 없지만이 방법은 매우 효과적입니다. 프로젝트에서 제대로 구현되지 않은 프로젝트 Mayur Patel 12 월 15 일 14시 17 분 22 Alleo 값 당 하나의 추가 작업을 수행하는 대신 두 작업을 수행 할 것입니다. 증명은 비트 전환 문제와 동일합니다. 그러나이 대답의 요점은 반드시 성능은 아니지만, 평균 64 비트 값에 대한 정밀 메모리 사용량은 캐시의 64 개 요소를 초과하지 않으므로 메모리 사용에 친숙합니다. Mayur Patel 12 월 14 일 14 일 17시. Python을 다시 사용하고 있습니다. , 그리고 예제와 함께 깔끔한 책을 발견했습니다. 예제 중 하나는 데이터를 플롯하는 것입니다. 두 개의 열이있는 파일이 있고, 데이터를 플롯했습니다. 그러나 운동에서는 계산할 프로그램을 더 수정하십시오. 이 경우에는 r 5이고 yk는 데이터 파일의 두 번째 열입니다. 프로그램이 원본 데이터와 실행 평균을 동일한 그래프에 플롯하게하십시오. 지금까지 이걸 가지고 있습니다. . 그래서 어떻게 합계를 계산합니까? Mathematica에서는 심볼릭 조작 이후 간단합니다. 예를 들어, 하지만 파이썬에서 합계를 계산하는 방법은 데이터에서 매 10 포인트가 걸리며 평균을 계산합니다. 나는 그 책을 보았으나, 그 책을 보았을 때 아무 것도 발견하지 못했다. is. heltonbiker 님의 코드가 트릭을 했어. 고맙습니다. 답변이 만족스럽지 않습니다. 대신 여기에서 유효해야합니다. 반환 창과 동일합니다. 예를 들어이 데이터의 MA를 시험해보십시오. - 세트 1,5,7,2,6,7,8,2,2,7,8,3,7,3,7,3,15,6 - 결과는 4 2,5 4,6 0이어야한다. , 5 0,5 0,5 2,5 4,4 4,5 4,5 6,5 6,4 6,7 0,6 8 그러나 똑같은 것은 우리에게 2 6,3 0,4 2의 잘못된 출력을 준다. , 5 4,6 0,5 0,5 0,5 2,5 4,4 4,5 4,5 6,5 6, 4 6,7 0,6 8,6 2,4 8. 시도 할 수있는 녹슨 코드 이걸로 해보세요. 유효하고 똑같은 것으로 해보고 수학이 의미가 있는지 확인하십시오. 10 월 29 일 14시 4 분 27 초. 피하지 마세요. 하지만 이것에 대해 살펴 보겠습니다. 파이썬 dingod에서 코딩 한 지 얼마되지 않았습니다. 29 14 at 7 07. dingod 녹슨 코드와 샘플 데이터 세트를 간단한 목록으로 빨리 시험해 보시지 않겠습니까? 나는 처음에했던 것처럼 게으른 사람들을 위해서 - 평균은 원래 응답을 편집하는 것을 고려해야합니다. 어제 시도했는데 이중 검사가 저장되었습니다. 내가 Cxo 레벨로보고하는 것이 좋지 않다. 당신이해야 할 일은 동일하고 유효하고 다른 시간을 가지고 같은 이동 평균을 한 번 시도하는 것입니다 - 그리고 일단 당신이 나에게 사랑을 주겠다고 확신한다면 일명 up-vote ekta 10 월 29 일 14 at 17. 우리는 이전에 파이썬을 사용하여 이동 평균을 만드는 방법을 소개했습니다. 이 튜토리얼은이 주제의 연장 선상에 있습니다. 롤링 실행 평균이라고도하는 통계의 이동 평균은 유한 임펄스 응답의 한 유형입니다. 이전 자습서에서는 배열 x와 y의 값을 플롯했습니다. y의 이동 평균에 대해 plot x를 yMA라고합니다. 먼저 두 배열의 길이를 동일하게 만듭니다. 그리고 결과를 그래프로 표시합니다. 이 점을 이해하는 데 도움이되도록 두 개의 서로 다른 관계 x와 y, x와 MAy를 플롯 해 봅시다. 이동 평균은 3에서 시작하는 녹색 플롯입니다. 이 튜토리얼의 계속되는 내용에서 우리는 큰 데이터 세트.

No comments:

Post a Comment