인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

Lucas님의 프로필 이미지

작성한 질문수

[PL 0302] 데이터 연산을 위한 파이썬 - 넘파이 마스터 클래스

Lecture.5-5 Matrix~Matrix Broadcasting(1/2)

broadcasting 관련 강의 듣다가 어떤 부분에서 실수가 발생해 오류를 발생시키는지 궁금합니다.

작성

·

34

0

오류가 발생하는 예시를 들어주실 수 있을까요? 어떤 부분을 주의해야하는지 더 도움이 될 것 같습니다. 🙂

답변 3

0

공대형아(신경식)님의 프로필 이미지

제가 여러 강의를 진행하다보니, 정확히 어떤 부분에서 실수가 자주 난다고 언급했는지 기억은 잘 안 나네요.

다만 broadcasting에서 가장 많은 실수는, 내가 생각했던 연산과 다른 코드를 작성할 때 입니다.

머리속에서는 "아 이렇게 broadcasting이 되겠지"라고 가볍게 생각하고 코드를 작성하고,

한참 뒤에 문제가 발생했을 때, broadcasting에서 오류가 발생하지 않았기 때문에 이 부분을 의심하기 힘듭니다.

이런 경우 내가 생각했던 연산이 아니게 되는 원인은 broadcasting의 원리를 잘 이해하지 못했거나, 순간 실수하는 것입니다.

따라서 broadcasting을 이용할 땐 반드시 '한 번 더' 확인해보는 습관이 중요합니다.

Lucas님의 프로필 이미지
Lucas
질문자

넵 따로' 어떤 부분에서 실수가 발생한다'고는 직접적으로 말씀은 하시진 않으셨는데 여러 회차에 걸쳐 당연히 될거라고 broadcasting 연산을 적용하고 어디서 에러가 발생했는지 발견하지 못한다는 실수를 지속적으로 말씀해주셔서, 어떻게 하면 그렇게 되는지 궁금해서 질문했습니다. 아직 동일 차원에서의 broadcasting 부분의 수업 내용을 듣고 있어서 오류가 나면 바로 에러 메시지를 보고 알아차릴 것 같았기에 어디서 실수를 하는지 더 구체적으로 알고 싶었었습니다. (이건 제가 실제 경험이 없고 배움의 단계에 있기 때문에 가지는 궁금증인 것 같습니다 ^^;)

 

말씀해주신 내용으로 짐작해 보면, 잘못된 broadcasting의 이해로 당연히 되야 한다는 것으로 믿고 있어 오류가 발생했을 때 해당 부분을 의심하지 않는 부분에서 실수가 발생한다는 것으로 이해하면 될까요?

공대형아(신경식)님의 프로필 이미지

안녕하세요!

말씀해주신 부분 중에서 오류가 있을 때 에러가 뜨는 것을 보고 알 수 있다고 하셨는데, 그런 경우라면 다행이지만 broadcasting은 생각보다 유연해서 오류가 뜨지 않고 내가 생각한대로 연산을 하지 않는 경우가 많습니다!

그래서 강의에서 다룬 규칙을 확실히 이해하고 broadcasting 이전에 shape을 확실히 잡아두고 하는 것이 실수를 줄일 수 있습니다😃

0

Lucas님의 프로필 이미지
Lucas
질문자

어느 한쪽의 차원이 1이 아닌 경우 broadcasting이 작동 안되는 것 같던데, 그 부분만 인지하면 실수를 방지할 수 있을까요?

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다.

Broadcasting 개념은 Numpy에서 크기가 다른 배열 간 연산을 편리하게 해주는 기능입니다. 그러나 이 기능을 사용할 때 몇 가지 주의할 점이 있습니다. 이를 잘못 처리하면 오류가 발생할 수 있습니다. 관련하여 도움이 될 만한 포스팅을 찾아보았습니다.

Broadcasting 시 주의해야 할 점 요약:

  1. 차원 맞추기: 두 배열이 같은 차원을 가지거나, 적어도 하나의 차원이 1이어야 합니다.
  2. 차원 확장: 한 쪽의 배열이 더 작은 경우, numpy는 작은 배열을 큰 배열 크기에 맞추기 위해 필요 시 차원을 추가하거나 확장합니다.
  3. 형태 불일치: 차원이 분명히 맞춰져야 한다. 만약 차원 중 1이 아닌 차원이 충돌하면 broadcasting이 불가능합니다.

관련하여 구체적인 예시와 설명을 위해, 다음 자료를 추천드릴 수 있습니다. 아래 링크의 답변에서 broadcasting의 자세한 설명과 함께 예제도 포함되어 있어 많은 도움이 될 것입니다.

파이썬 Numpy의 Broadcasting에 대한 자세한 설명 보기

이미지를 통해 설명을 보시려면, Numpy 공식 문서도 참고하실 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Lucas님의 프로필 이미지

작성한 질문수

질문하기