* 부스트코스 "머신러닝을 위한 파이썬"를 듣고 작성한 포스트입니다.
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들의 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들의 column들을 비교해보았다.
[그림 3]을 통해 matrix의 크기를 확인해본 결과 matrix_x는 [2,2],[2,2],[2,2] 세가지가 있으므로 3, matrix_y는 [2,5],[2,1] 두가지가 있으므로 2가 나왔다.
[그림 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]를 보면 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
'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 |