안녕하세요! 캡슐화 추가 설명 강의 중 궁금한 것이 있어 질문 드립니다. 상위 모듈인 app 모듈의 providers에서 하위 모듈들의 service나 repository를 주입 받아 사용하게 되면 다음과 같은 문제가 있다고 하셨습니다. 모듈들의 관리가 힘들어진다. 단일책임원칙이 깨진다. 추가적인 학습으로 알게된 1번에서 발생할 수 있는 문제는 다음과 같습니다. -상위 모듈의 providers에서 인덱스 순서대로 service를 불러 오기 때문에 만약 하위 클래스끼리의 의존성이 존재한다면, 그 순서를 관리해줘야 되는 복잡성이 발생한다 . 순환참조 또한 일어날 수 있다. 하지만 2번 단일책임원칙이 깨진다는 문제점이 발생한다는 것은 아직 이해하지 못했습니다. app 모듈안에서 다른 클래스들의 기능을 사용할 때 참조하는 방식이 잘못된 것이지, 해당 클래스의 기능의 책임이 확장된 것은 아니라는 생각이 듭니다. 여전히 기능의 변경이 일어났을 때 해당 클래스만 수정하면 된다고 생각하기 때문입니다. 제 이해가 잘못된 것인지, 강사님께서 SRP원칙의 의미를 조금 더 확장해서 말씀해주신 것인지 궁금합니다!
집합(SET) 활용하여 차집합 개념은 잘 이해했습니다. a-b 가 존재할 경우 레이블 인코딩 하면 문제가 없는 것 b-a 존재할 경우 학습시 b에 존재하는 컬럼이 인코딩이 안되는 문제! 이럴 경우엔 axis=0(열)로 합해서 인코딩 후 다시 분리하는 방법이 있다고 하셨는데 그렇게 하지않고 인코딩 할때 fit을 b(test) 로 하고 트랜스폼을 a(train)으로 하면 무슨 문제가 발생할까요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 책은 따로 구매하지않고 강의만 보고 진행할 생각인데 그럼 책에 있는 미션일 경우 그냥 끝이나는 건가요? 아니면 문제는 제공되나요?
n = int(input()) c = [] for _ in range(n): b = int(input()) c.append(b) def DFS(L,first,second,third): global best a = max(first,second,third) - min(first,second,third) if a >= best: return if L == n: if a < best: best = a else: for i in range(n): if ch[i] == 0: ch[i] = 1 DFS(L+1,first+c[i],second,third) DFS(L+1,first,second+c[i],third) DFS(L+1,first,second,third+c[i]) ch[i] = 0 ch = [0] * n best = 10000000000000 DFS(0,0,0,0) print(best)
문제에 대한 정리가 필요해 질문 남깁니다. 결국 문제는 1명, 2명, 3명 이렇게 차례대로 모였을 때 1명 모이면 이동거리 최소 이동 거리 합 : n1 2명 모이면 이동거리 최소 이동 거리 합 : n2 n명 모이면 이동거리 최소 이동 거리 합 : nn 이런 최소값을 원하는 문제인거죠? 그래서 1번 아이디어로 구현 했을 경우에는 모든 좌표에 대해서 1명 모일 때 , 2명 모일 때 반복하면서 모든 경우의 수를 찾아가는 가는 방법이고 2번 아이디어의 경우는 모든 좌표를 볼 필요 없이 각각의 집 좌표만 보면 된다라는 생각을 해서 각각의 집 좌표로 비교해서 경우의 수를 찾는 방법이고 3번 아이디어는 각각의 집 좌표들을 모두 비교할 필요 없이 정렬 후 인원의 수 만큼 돌면서 작은 값이면 바꿔준다 방법이고 이런 느낌으로 접근을 한게 맞는 걸까요?
작업형1 모의문제3 문제9관련 질문입니다. 해설을 보고 코드를 작성했는데, 결과값이 11이 아니라 np.int32(11)로 나옵니다. 무엇이 잘못되었을까요? 문제9 구독(subscribed) 월별로 데이터 개수를 구한 뒤 가장 작은 구독 수가 있는 월을 구하시오 # your code import pandas as pd df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/main/p1/members.csv") df['subscribed']=pd.to_datetime(df['subscribed']) df['year']= df['subscribed'].dt.year df['month']= df['subscribed'].dt.month df['day'] =df['subscribed'].dt.day df= df.groupby('month').count() df.sort_values('subscribed').index[0] =>np.int32(11)
문제3을 풀다가 궁금한 부분이 생겨서 질문합니다. f3 컬럼의 결측치는 0, silver는 1, gold는 2, vip는 3 으로 변환하는 과정에서 1,2,3을 문자형으로 했을 때는 제대로 나오는데, 숫자형으로 진행하면 오류가 납니다. 아래 제 제가 작성한 코드와 오류 내용입니다. # your code import pandas as pd df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/main/p1/members.csv") #views 컬럼에 결측치가 있는 데이터(행)을 삭제하고, # print(df.isnull().sum()) # print(df.shape) df=df.dropna(subset=['views']) # print(df.shape) # f3 컬럼의 결측치는 0, silver는 1, gold는 2, vip는 3 으로 변환한 후 # print(df.head(10)) df['f3']=df['f3'].fillna(0) df['f3']=df['f3'].replace('silver',1) df['f3']=df['f3'].replace('gold',2) df['f3']=df['f3'].replace('vip',3) # print(df.head(10)) #총 합을 정수형으로 출력하시오 # print(df.info()) df['f3']=df['f3'].astype('int') # print(df.info()) print(sum(df['f3'])) 출력값 =>133 <ipython-input-136-3e83f178c7e6>:20: FutureWarning: Downcasting behavior in `replace` is deprecated and will be removed in a future version. To retain the old behavior, explicitly call `result.infer_objects(copy=False)`. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)` df['f3']=df['f3'].replace('vip',3) 마지막 방법으로 알려주신 sum의 방법의 경우 문제에서 제시하는 값을 변환하고 총 합을 출력하라는 지시에서 값을 실제로 변환하지는 않은 것 같은데.. 답만 맞으면 괜찮은 걸까요? # your code import pandas as pd df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/main/p1/members.csv") #views 컬럼에 결측치가 있는 데이터(행)을 삭제하고, # print(df.isnull().sum()) # print(df.shape) df=df.dropna(subset=['views']) # print(df.shape) # f3 컬럼의 결측치는 0, silver는 1, gold는 2, vip는 3 으로 변환한 후 r1=sum(df['f3']=='silver')*1 r2=sum(df['f3']=='gold')*2 r3=sum(df['f3']=='vip')*3 print(r1+r2+r3) => 133
안녕하세요. 현재 섹션 3 [작업형1] 판다스 updated 2025.4를 학습중입니다. 판다스 6,7은 시계열 데이터 인데.. 자료에는 ["시계열 데이터" 부분은 마지막으로 옮겼습니다.]고 되어있고 Section19~21 내용은 어떤 강의를 보아야 하는지 모르겠습니다.