플롯 (plot) 코드의 기본 구조 (matplotlib)를 타이머에 업데이트하여 플롯 데이터에 대한 파이썬 목록을 사용하여 numpy 배열을 사용하도록 변경하려고합니다. 가능한 한 줄거리의 시간 단계를 낮출 수 있기를 원하며, 데이터가 수천 개의 점으로 나타날 수 있기 때문에, 내가 할 수 없다면 나는 귀중한 시간을 빨리 잃어 버리게됩니다. 나는 이런 종류의 배열에 numpy 배열을 선호하지만 Python 프로그래머처럼 생각해야 할 때와 C++ 프로그래머가 메모리 액세스의 효율성을 최대화 할 필요가있을 때 생각할 때 문제가 있습니다.numpy 배열을 사용하는 파이썬 가비지 수집은 어떻게 추가되고 삭제됩니까?
append() 함수에 대한 scipy.org 문서에 첨부 된 복사본의 복사본을 반환한다고 나와 있습니다. 이 모든 사본이 제대로 가비지 수집됩니까? 예를 들어 :
import numpy as np
a = np.arange(10)
a = np.append(a,10)
print a
이것은 ++은 C에 무슨 일이 일어나고 있는지의 내 독서이다 - 수준,하지만 난, 내가 질문을되지 않을 것에 대해 말하고 있었는지 알았다면, 그렇다면 제발 올바른 I 잘못 했어! = P
먼저 10 개의 정수 블록이 할당되고 기호 a는 해당 블록의 시작을 나타냅니다. 그런 다음 총 11 개의 정수 (84 바이트)가 사용되기 때문에 11 개의 정수로 이루어진 새로운 블록이 할당됩니다. 그런 다음 포인터는 11-int 블록의 시작 부분으로 이동합니다. 내 생각에 이것은 가비지 콜렉션 알고리즘이 10-int 블록의 참조 카운트를 0으로 감소시키고 그것을 할당 해제하게 될 것입니다. 이게 옳은 거니? 그렇지 않은 경우 추가시 오버 헤드가 발생하지 않도록하려면 어떻게해야합니까?
numpy 배열을 올바르게 사용하는 방법을 잘 모르겠습니다. 플롯에서 모든 데이터를 플러시하고 다시 시작하는 재설정 버튼이 있습니다. 목록이있을 때 del data[:]
을 사용하여이 작업을 수행했습니다. numpy 배열에 해당하는 함수가 있습니까? 아니면 data = np.array ([])라고 말하고 가비지 컬렉터를 사용하여 작업을 수행해야합니까?
그래서 기본적으로 나는 진정해야합니다. =) 명확한 설명 주셔서 감사합니다. 어떻게 작동했는지는 알았지 만 100 % 명확하지 않았습니다. – pr0crastin8r