판다스를 학습하는 과정에서 수강생들은 전체에 적용할 수 있는 포괄적인 규칙성에 대해 자주 질문합니다. 이번 글에서는 규칙성을 찾으려는 시도보다 더 중요한 것을 배워가시기 바랍니다.
강의하다 보면 전체에 적용할 수 있는 포괄적인 규칙성에 대해 많은 질문을 받습니다. 어떤 질문을 의미하는지, 다음 예시를 통해 확인해 봅시다.
규칙성을 찾는 질문의 예시
학생들의 점수가 포함된 데이터 프레임 df에 sum 함수를 적용하면, 수강생들이 이렇게 질문합니다.
왜 sum 함수는 axis=0이 '열'의 합을 반환하나요?
이번에는 데이터 프레임 df에서 학생 A와 B에게 각각 1점과 2점을 가산해 보겠습니다. 브로드캐스팅의 축 방향 기본값은 axis=1입니다. 따라서 원하는 결과를 얻으려면 단순한 연산자를 사용할 수 없으며, 다음과 같이 연산 함수 add를 사용하여 축을 axis=0으로 설정해야 합니다.
df.add(pd.Series([1, 2]), axis=0)
sum은 axis=0이 기본값이었는데, add는 왜 axis=1이 기본값인가요?
규칙성에 대한 질문과 그 한계
이런 질문은 코딩 초심자에게서 자주 나옵니다. 숙련된 프로그래머는 라이브러리마다 규칙성을 정확히 알기 때문에 이런 질문을 하지 않는 것이 아니라, 그러한 라이브러리의 규칙성 자체가 크게 의미가 없다는 것을 알기 때문입니다.
라이브러리는 단순히 누군가가 만들어 놓은 함수들의 모음일 뿐입니다. 설계자가 함수를 어떻게 정의하든 상관없습니다. 예를 들어 특정 함수에서 매개변수 axis의 인수를 0과 1로 설정했다 하더라도, 다른 함수에서는 axis의 인수를 '김판다'와 '판다스'로 정의해도 문제가 되지 않습니다. 물론 좋은 라이브러리는 개발자가 심사숙고 끝에 꽤 직관적인 규칙을 적용해 만들지만, 그럼에도 개발자가 생각한 규칙과 사용자가 이해하는 규칙이 반드시 일치하지 않을 수 있습니다. 이를 굳이 내가 이해하는 포괄적인 규칙에 가두려고 노력할 필요는 없습니다.
중요한 것은 원하는 결과를 얻는 방법을 아는 것이지 라이브러리의 규칙성을 찾는 것이 아닙니다.
초심자가 규칙에 얽매이는 이유
초심자들은 함수의 사용법을 암기하려는 경향이 있습니다. 그렇기 때문에 규칙이 있다면, 그 규칙만 알면 일정 부분 암기에서 벗어날 수 있다고 생각하여 규칙을 중요하게 여깁니다. 하지만 코딩은 암기가 아닙니다.
예를 들어 df.sum(axis=0)의 결과가 예상과 다르게 나왔다면, 축을 수정하여 df.sum(axis=1)로 다시 실행하면 문제를 쉽게 해결할 수 있습니다. 코드를 작성하면서 몇 초 만에 해결할 수 있기 때문에 굳이 외울 필요는 없습니다. add 함수 매개변수 axis의 기본값도 공식 문서에서 확인하고 사용하면 됩니다. 구글 코랩에서는 Shift + Tab을 눌러 공식 문서를 확인할 수 있습니다.
코딩을 올바르게 학습하는 방법
- 라이브러리의 자의성을 인정하라
라이브러리는 설계자가 만든 것이므로, 모든 함수에 일관된 규칙이 적용되지 않을 수 있습니다. 그래서 굳이 규칙이 필요하다고 생각하지 않습니다. 하지만 수강생 입장에서 학습을 위해 규칙이 필요하다면, 본인이 편한 대로 자의적으로 규칙을 만들어도 괜찮습니다. 만약 예외를 만나더라도 "이런 경우도 있구나"라고 편하게 인정하면 됩니다. - 손으로 코딩하라
직접 코드를 작성하면 쉽게 해결할 수 있는 문제를 굳이 외우려고 하지 마십시오. 코드를 작성하고 결과를 확인하는 것이 훨씬 더 빠르고 효과적입니다. 특히, 이른바 '눈으로 코딩'한다고 불리는 방식으로 강의를 실습 없이 수강하는 수강생일수록 규칙에 얽매이기 쉽습니다. 실습하지 않으면, 실습으로 쉽게 확인할 수 있는 부분조차 파악하기 어려워지기 때문에 암기하기 좋은 규칙을 생성하려고 합니다. 반드시 손으로 직접 코딩해 보세요. - 공식 문서를 참고하라
함수의 사용법은 코딩하면서 공식 문서를 통해 쉽게 확인할 수 있습니다. 구글 코랩에서는 Shift + Tab을 눌러서 함수의 기본값과 매개변수를 바로 확인할 수 있습니다.
코딩은 암기가 아니다
코딩을 올바르게 학습하기 위해서는 암기가 아닌 실습을 통해 결과에 도달하는 습관이 필요합니다. 직접 코드를 작성하고 결과를 확인해 보면서, 자연스럽게 함수의 사용법을 익히는 것이 중요합니다. 포괄적인 규칙성에 집착하지 않고, 문제를 해결하는 능력을 기르는 것이 진정한 코딩 학습입니다. 라이브러리의 함수는 외워서 쓰는 것이 아니고 공식문서를 참고하면서 사용하는 것입니다.
우리 모두 코딩을 코딩답게 공부합시다!
유튜브에서 판다스 강의 중입니다.
https://www.youtube.com/@KimPandas
'여러 가지 이야기 > 잡다한 이야기' 카테고리의 다른 글
온라인 코딩 강의를 듣는 분들은 에러가 나면 반드시 AI부터 돌려보세요! (0) | 2023.08.14 |
---|---|
[pandas] 내가 생각한 결과가 나오지 않을 때 가장 먼저 확인해야 할 것 (0) | 2023.08.12 |
[slack] 슬랙에서 코드블럭 사용하는 방법 (0) | 2023.07.10 |
나의 개발 환경(파이썬 IDE)이 강의와 다르다면 어떻게 해야 할까요? (0) | 2023.06.10 |
[pandas] 코딩에 데이터에 대한 질문을 할 때 예시를 작성하는 방법 (0) | 2023.05.25 |