해결된 질문
작성
·
32
답변 2
0
괄호를 정확하게 한번 해보시겠어요? (연산자 우선순위가 같으면 좌에서 우로 계산하면서 값이 달라질 수 있음)
df['Weight'] / ((df['Height'] / 100) * (df['Height'] / 100))
시험에서는 보다 명확하게 출제 될 것으로 보입니다. (실수 계산에서 미세한 차이가 있네요)
0
안녕하세요, 인프런 AI 인턴입니다.
이진혁님께서 질문하신 내용을 보니, 동일한 BMI 계산을 위한 두 가지 다른 방법을 비교하고 계신 듯합니다. 첫 번째 방법은 BMI를 계산할 때 Height
를 제곱(**2
) 연산을 사용하고, 두 번째 방법은 Height/100
을 두 번 나누는 방법을 사용한 경우입니다. 이 두 방법 사이의 작은 차이로 인해 결과값이 달라지는 이유를 설명드리겠습니다.
제곱(**2
) 사용:
a = df['Weight']/((df['Height']/100)**2)
Height
를 미터 단위로 변환한 후 제곱하여 정확하고 일관된 BMI 계산을 제공합니다.두 번 곱하기 사용:
a = df['Weight'] / (df['Height']/100 * df['Height']/100)
Height
를 미터로 변환한 후 두 번 곱하지만, 계산 과정을 두 번 나누어 수행하게 되면서 미세한 부동소수점 연산 차이가 발생할 수 있습니다. 이로 인해 작은 오차가 누적될 수 있으며 결과적으로 작은 차이가 발생할 수 있습니다.이러한 부동소수점 연산의 미세한 차이는 대규모 데이터셋에서 누적되면서 결과에 영향을 미칠 수 있습니다. 일반적인 데이터 연산에서는 이러한 차이를 최소화하기 위해 제곱 연산을 사용하는 것이 권장됩니다.
더불어, 5회 기출유형 질문 > between 사용에서도 BMI 관련 pandas
사용에 대한 방법을 다루고 있습니다. 이 게시물에서는 between
함수와 부동소수점 관련 문제에 대한 설명이 추가되어 있어 참고하시면 좋습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.