307p에서...
draw_fruits() 함수 생성할 때 행과 열 값을 변수로 선언하잖아요,
def draw_fruits(arr, ratio=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개라는 말이 잘 이해되지 않습니다.