인프런 커뮤니티 질문&답변

soxxun님의 프로필 이미지
soxxun

작성한 질문수

혼자 공부하는 머신러닝+딥러닝

k-평균

KMeans

작성

·

250

0

307p에서...
draw_fruits() 함수 생성할 때 행과 열 값을 변수로 선언하잖아요,
 
def draw_fruits(arrratio=1): # arr : 출력할 이미지의 배열
    n = len(arr)  # n은 샘플 개수이다. / 출력할 이미지의 개수를 담을 변수

    # 한 줄에 10개씩 이미지를 그린다. 샘플 개수를 10으로 나누어 전체 행 개수를 계산한다. 
    rows = int(np.ceil(n/10)) # 10개의 열을 둔다. ceil() --> 올림 함수

    # 행이 1개 이면 열 개수는 샘플 개수이다. 그렇지 않으면 10개이다.
    cols = n if rows < 2 else 10 <--

    fig, axs = plt.subplots(rows, cols, figsize=(cols*ratio, rows*ratio), squeeze=False)

    for i in range(rows):
        for j in range(cols):
            if i*10 + j < n:    # n 개까지만 그린다.
                axs[i, j].imshow(arr[i*10 + j], cmap='gray_r')
            axs[i, j].axis('off')
   plt.show()
 
 
1. raws에 저장된 값이 행의 개수이고 사과 이미지의 샘플 수가 100개라면 10개의 행이 저장되는 건데,
cols 변수의 조건문에서 어떻게 '행이 1개라면'이라는 가정을 하나요? 행이 한개만 나올 수가 없지 않나요?
 
행이 1개일 때 열 개수가 샘플 개수이고 그렇지 않으면 10개라는 말이 잘 이해되지 않습니다.

답변 1

0

박해선님의 프로필 이미지
박해선
지식공유자

안녕하세요. 박해선입니다.

샘플 개수가 10개 미만일 때 이 함수를 사용하는 경우를 고려한 것입니다. 샘플이 10개 미만이면 열의 개수는 샘플 수와 같습니다. 그렇지 않으면 열 개수는 항상 10입니다.

감사합니다!

soxxun님의 프로필 이미지
soxxun

작성한 질문수

질문하기