본문 바로가기

STUDY/Python

[Pythonic Code] Assignment-Basic Linear Algebra(2)

728x90


* 부스트코스 "머신러닝을 위한 파이썬"를 듣고 작성한 포스트입니다.

https://github.com/TEAMLAB-Lecture/AI-python-connect/tree/master/lab_assignments/lab_1

 

GitHub - TEAMLAB-Lecture/AI-python-connect

Contribute to TEAMLAB-Lecture/AI-python-connect development by creating an account on GitHub.

github.com


5. matrix_size_check 

 # matrix 간 연산이 가능한지 사이즈를 확인하는 함수

* set():중복되지 않은 unique한 원소를 얻고자 할때 사용가능.

  set은 중복되는 요소들을 삭제 해준다.

  set에 추가하고자 할 때 .add()를 사용한다.

* and 연산자:A and B

  A, B 둘 다 참인 경우, 참 반환.

  A, B 둘 중 하나만 참인 경우, 거짓 반환.

 

위 코드는 row(행/가로)와 column(열/세로)를 따로 비교하고 and연산자를 통해 size_check를 해준다. 

 

[그림 1] matrix_x, matrix_y의 row비교 후 결과 반환해보기

[그림 1]과 같이 matrix들의 row들을 비교해보았다.

 

예시로 코드를 설명하자면 matrix_x의 0번째 행인 [2,2]의 길이를 len(matrix[0]) 코드로 구해준다. len(matrix[0])값은 2이다.

 

그 다음 matrix_y의 0번째 행인 [2,5]의 길이를 구하여 준다. matrix_y의 len(matrix[0])은 matrix_x와 같이 2이다.

 

matrix_x와 matrix_y의 결과값이 동일하게 2이므로 set 함수를 통해 중복값을 없애면 2가 하나만 남아 1이 된다. len(set(len(matrix[0]) for matrix in matrix_variables))의 값은 1이므로 1==1이 되어 True를 반환한다.  따라서 row비교값은 True를 반환한다.

 

**all() 함수는 결과값이 True, True, False로 나왔을 때 False 반환, True, True, True로 나왔을 때 True 반환하는 것을 말한다. 위 코드는 matrix[0]만을 비교하므로 없어도 괜찮다.

 

[그림 2] matrix_x, matrix_y의 column비교 후 결과 반환해보기

 [그림 2]와 같이 matrix들의 column들을 비교해보았다.

[그림 3] len(matrix)을 확인해보았다

[그림 3]을 통해 matrix의 크기를 확인해본 결과 matrix_x는 [2,2],[2,2],[2,2] 세가지가 있으므로 3, matrix_y는 [2,5],[2,1] 두가지가 있으므로 2가 나왔다. 

[그림 4] len(matrix_variables[0])을 확인해보았다

[그림 4]를 통해 matix_variables[0]인 matrix_x의 크기를 확인하면 [2,2],[2,2],[2,2] 세가지가 있으므로 3이 나온다.

 

[그림 3]과 [그림 4]의 결과를 바탕으로 [그림 2]를 다시 살펴보면 len(matrix_variables[0])==len(matrix) 부분에서 3=3, 3=2 이렇게 두번 비교한다. matrix_x와 matrix_y의 column 길이가 3, 2로 같지 않으므로 False이다. 

[그림 5] 각 matrix의 column 길이 비교 출력

[그림 5]를 보면 True, False로 나온 것을 확인할 수 있다. 이를 [그림 2]로 all()함수를 통해 결과 반환해주면 all(True, False)로 False가 나온다. 

 

최종적으로 matrix_x, matrix_y의 row 비교 결과를 and 연산자로 구해주면 False가 나옴을 알 수 있다.


✔ 이전 포스팅 보러가기

https://chaeso-coding.tistory.com/25?category=977447 

 

[Pythonic Code] Assignment-Basic Linear Algebra(1)

* 부스트코스 "머신러닝을 위한 파이썬"를 듣고 작성한 포스트입니다. https://github.com/TEAMLAB-Lecture/AI-python-connect/tree/master/lab_assignments/lab_1 GitHub - TEAMLAB-Lecture/AI-python-connect Co..

chaeso-coding.tistory.com

✔ 다음 포스팅 보러가기

https://chaeso-coding.tistory.com/34?category=977447 

 

[Pythonic Code] Assignment-Basic Linear Algebra(3)

* 부스트코스 "머신러닝을 위한 파이썬"를 듣고 작성한 포스트입니다. https://github.com/TEAMLAB-Lecture/AI-python-connect/tree/master/lab_assignments/lab_1 GitHub - TEAMLAB-Lecture/AI-python-connect Co..

chaeso-coding.tistory.com

 

728x90

'STUDY > Python' 카테고리의 다른 글

[백준] 20044번  (0) 2022.01.17
python 보충학습  (0) 2022.01.12
[Pythonic Code] Assignment-Basic Linear Algebra(1)  (0) 2022.01.10
[프로그래머스] 수박수박수박수  (0) 2021.10.14
[백준] 1001번  (0) 2021.04.19