matplotlib.pyplot) 기본 요소 (이걸 중심으로 기억하자)
·
Visualization
크게, 1) 그래프 생성 2) 꾸미기 3) 그래프 출력 이렇게 나눠서 생각하면 편하다. 1. 그래프 생성 1) 선 그래프plt.plot(x, y)  2) 막대그래프plt.bar(['A', 'B', 'C'], [10, 20, 30])   3) Scatter Plotplt.scatter(x, y)  4) 히스토그램data = np.random.randn(1000) plt.hist(data, bins=30)  2. 꾸미기plt.title('Sine Wave Example') # 제목 추가plt.xlabel('X-axis') # x축 레이블plt.ylabel('Y-axis') # y축 레이블plt.grid(True) # 격자 추가plt.legen..
Python 딕셔너리의 메모리 관리 구조(a.k.a hash table)
·
Programming
1. 딕셔너리 생성 후 해시 테이블 기본 형태인덱스해시 값키 값0NoneNoneNone1NoneNoneNone2NoneNoneNone3NoneNoneNone4NoneNoneNone5NoneNoneNone6NoneNoneNone7NoneNoneNone (처음 딕셔너리가 만들어지면 이런 식으로 인덱스만 결정된 채 나머지 데이터는 비어있는 상태의 8행의 테이블이 만들어진다고 한다.) 2. 값이 입력 되었을 때 해시 테이블의 형태인덱스해시 값키 값034891759823412'Alice''010-1234-5678'145981769173452'Bob''010-2345-6789'258917234123412'Carol''010-3456-7890'3NoneNoneNone4NoneNoneNone5NoneNoneNone6N..
오버헤드(Overhead)란? (Feat 전역변수 vs 딕셔너리)
·
Programming
1. 오버헤드의 정의 오버헤드는 주요 작업을 수행하는 데 추가로 드는 비용을 의미한다. 1) 메모리 오버헤드실제 데이터를 저장하는 데 필요한 순수한 메모리 공간 이외에 추가로 필요한 메모리.예를 들어, 변수의 이름, 타입, 참조 정보 등을 저장하기 위해 추가 메모리 공간이 필요하면, 그것이 바로 메모리 오버헤드 2) 시간 오버헤드데이터를 처리하거나 찾는 데 추가적인 연산 시간이 발생하는 것.예를 들어, 해시 테이블에서 충돌을 해결하거나 데이터를 재구성하는 과정에서 발생하는 시간 비용. 2. 전역 변수에서의 오버헤드  다음과 같은 코드를 바탕으로 논의해 보자.globals()['var_0'] = 10 1) 변수 이름 관리'var_0'이라는 이름을 전역 네임스페이스에 등록해야 함.이 이름이 어디에 위치하는지..
Python에서 반복문을 활용한 동적 변수 생성 및 관리 2. (딕셔너리 최고)
·
Programming
globals를 통한 반복문에서의 동적 변수 생성과 딕셔너리를 생성했을 때, 메모리 관리 측면에서의 차이점을 생각해 보자. 1. globals()의 메모리 관리globals()는 전역 변수 테이블을 직접 수정한다.따라서 프로그램이 종료되기 전까지 메모리에서 해제되지 않는다.따라서 가비지 컬렉션이 적용되지 않는다.만약 반복문을 1000번 돌린다고 가정하면 1000개의 전역 변수가 생성되며, 메모리에 계속 남아 메모리 관리에 부담을 줄 수 있다.또한 메모리에서 해당 변수명을 삭제하려면 하나씩 제거해야 하므로 매우 비효율적(변수 이름이 전역 네임스페이스에 추가되므로, 변수 관리가 어려워지고 이름 충돌 위험도 커진다.) 2. 딕셔너리의 메모리 관리딕셔너리는 일반 객체이다. 따라서 특정 함수나 클래스(스코프) 내..
Python에서 반복문을 활용한 동적 변수 생성 및 관리 1
·
Programming
1. 지양해야 할 방법 : 전역변수로 구현data = {}for i in range(3): globals()['var_{i}'] = i * 10  globals()을 이용해서 전역변수로 처리해 버리는 방식. globals()[ '변수 1' ]이라고 코딩하면 '변수 1'이 전역변수로 설정할 수 있다. 애초에 globals()[ ] 이게 globals의 사용 용법인 듯하다. 그러나 비추하는 방식이라고 한다. 비추하는 이유는 1) 유지보수가 어렵다.2) 디버깅과 IDE 자동완성이 어렵다.3) 메모리 사용이 비효율적이다.  cf) 전역 변수 관리 방식 전역 변수는 모듈 수준에서 관리되며, 전역 네임스페이스 자체가 해시 테이블로 동작한다.그러나 전역 변수는 단순히 값 저장만 하는 것이 아니라, 다음과 같은 ..
2024.12.27.Fri. 현상부터 실험까지 (Feat. Science)
·
PM/S.C.C - Essence
1. 과학적 연구 방법론  과학적 연구 방법론은 1) 관찰 혹은 연구를 통해서2) 현상에 대한 가설을 세우고3) 가설에 대해 실험을 하여 입증과정을 통해 4) 입증이 됐다면 여러 논의를 통해서 법칙을 만든다. 이 내용은 순수과학(공대도 배울 지도?)에 속한 학과라면 1학년 1학기에 배우는 내용이다. 또한 저 내용을 모르더라도 직접 실험을 통해 체득하기도 한다. 2. PM의 문제 정의 및 해결 접근법 1) 현상현상을 관찰한다.이때, 가치판단은 하지 않는다.보통 데이터를 통해 관찰하게 된다. 2) 목표목표를 설정한다. PM이 속한 팀과 소속에 따라 목표는 달라질 수 있다.또한 1과 2는 독립적이라고 할 수 있다. 꼭 종속적이라 할 수 없다. 3) 얕은 문제(피상적 문제)목표를 바탕으로 현상을 바라볼 때 비로..
🎄 관측 불가한 모집단에 대해 R.S이 편향됐는지 어떻게 확인할 수 있을까?
·
PM/S.C.C - Essence
아주 중요한 문제이다. 우리는 어차피 Random Sample만 볼 수 있다. 관찰 불가능한(또는 완전히 알 수 없는) 모집단과 비교했을 때 내가 가진 데이터가 편향되어 있다면, 이를 어떻게 알아챌 수 있을까?이 질문은 “내가 가지고 있는 데이터가 실제 모집단을 잘 대표하지 못한다면, 어떠한 방법으로 편향을 감지할 수 있을까?”라는 문제로 해석할 수 있다. 편향을 감지하기 위한 전략은 다음과 같이 몇 가지로 나누어 생각해볼 수 있다. 1. 도메인 지식 및 외부 정보 활용도메인 전문가의 정성적 평가특정 산업, 과학 분야, 혹은 사회학적 맥락에서 일반적으로 알려진 분포나 경향이 있을 수 있다.예를 들어, 의료 데이터에서 만약 특정 질환이 전체 환자 중 10% 빈도로 발생한다고 알려져 있는데, 내 데이터셋에서..
(매우 중요)"어차피 할 사람은 한다." + "가치 제안"
·
PM/S.C.C - Essence
1. 어차피 할 사람은 한다. 아무리 UX가 어떻고 절차가 복잡하고 해도  "할 사람"은 한다. 그러면 어떻게 할 사람을 찾아내느냐가 관건일 것이다. 2. 한 가지 방법은 마케팅이다. 즉, 시도하는 고객의 전체 수를 늘려버리면 된다. 시도하는 고객의 분포가 크게 변하지만 않으면, "할 사람"의 비율은 변하지 않을 것이라고 가정할 수 있다. 따라서 시도하는 고객의 전체 수를 늘리면 그 만큼 "할 사람"의 수를 늘릴 수 있다. 단, "할 사람"의 비율은 거의 변동 없을 것이다. 3. 두 번째 방법은 마케팅이긴한데, 타겟 마케팅이다. 즉, "할 사람"의 특징을 잘 찾아서 그 특징이 있을 법한 그룹에게 마케팅을 하는 것이다. 그렇다면 1) 시도하는 고객의 전체 수의 증가를 도모하면서2) "할 사람"의 비율 증가..
HardConcentrator