exercise 99 에서 inner_idx 부분 관련 질문드립니다!

21.05.24 00:56 작성 조회수 144

0

안녕하세요 강사님. 

exercise 99 관련해서 inner_idx 부분 관련해서 질문 드리겠습니다.

###### ( '변수명'만 조금 수정한 코드입니다!)

for row_idx in range(n_row):

    vec1 = mat1[row_idx] # mat1 의 차원데이터를 각각 [1,2,3] ,[4,5,6] , [7,8,9] 씩 저장

    dot_prods = list()

    

    for col_idx in range(n_col):

        vec2 = list() # vec1 값에다가 mat2 의 세로로 한줄씩 [11,14,17] [12,15,18] 씩 꺼내야됨

        for inner_row_idx in range(n_row):

            # 행을 순환시키고, 열은 고정해야 세로로 한줄씩 [11,14,17] [12,15,18] 씩 꺼낼수 있음.

            vec2.append(mat2[inner_row_idx][col_idx]) 

            

        dot_prod = 0

        for inner_idx in range(n_col):

            dot_prod += vec1[inner_idx] * vec2[inner_idx]

        dot_prods.append(dot_prod)

    mat_mat_mul.append(dot_prods)

######

(어차피 값은 동일하겠지만...) 저의 경우에는 inner_idx 부분을 range(n_row) 로 하는 게 좀 더 정확하지 않을까 싶은데요!

mat2 에 접근할때 세로로 한줄씩 리스트로 뽑아서 vec2 에 넣으려고 하는 건데...  열(col_idx)는 고정되어있고 행 부분을 iteration 시키니깐, in range(n_row) 라고 하는 게 좀 더 정확하지 않을까 싶습니다.

inner_idx 부분에서 range 안에 n_col 을 넣는 것이 조금 개념적으로 헷갈려서 질문을 드렸습니다.

저의 이해나 수정한 방식에서 틀린 부분이 있을까요? 

답변 1

답변을 작성해보세요.

1

안녕하세요 대혁님!

말씀하시는 부분의 의도는 충분히 공감합니다~

코드를 만들 때 상당히 다양하게 만들 수 있으니, 대혁님이 생각하시는대로 작성하셔도 됩니다!

다만 수정하는 부분에서 발생할 수 있는 부분만 주의한다면 자신에게 편한 코드로 작성하는게 오히려 더 좋습니다 :)

감사합니다.

신경식 드림