NumPy에서 입력값의 제곱근을 계산하려면 np.emath.sqrt()(scimath.sqrt) 메서드를 사용하면 됩니다. 이 메서드는 x의 제곱근을 반환하며, x가 스칼라라면 결과도 스칼라로, 그렇지 않다면 배열로 반환됩니다. 매개변수 x는 제곱근을 구하고자 하는 입력값입니다.
특히 이 메서드의 가장 큰 장점은 음수 입력 요소에 대해서도 오류 없이 복소수 값을 반환한다는 점입니다. 일반적인 np.sqrt() 함수는 음수 입력 시 NaN을 반환하지만, emath.sqrt()는 자동으로 복소수 영역으로 확장하여 올바른 결과를 제공합니다.
단계별 진행 과정
1. 필요한 라이브러리 임포트
import numpy as np
2. array() 메서드로 NumPy 배열 생성
양수와 음수가 섞여 있는 배열을 생성해 보겠습니다.
arr = np.array([1, -4, -9, 16, -25, 36])
3. 배열 출력
print("Our Array...\n", arr)4. 배열의 차원 확인
print("\nDimensions of our Array...\n", arr.ndim)5. 데이터 타입 확인
print("\nDatatype of our Array object...\n", arr.dtype)6. 배열의 형태(Shape) 확인
print("\nShape of our Array object...\n", arr.shape)7. emath.sqrt()로 제곱근 계산
이제 np.emath.sqrt() 메서드를 사용하여 입력값의 제곱근을 계산합니다. 음수 요소는 복소수 형태로 결과가 반환됩니다.
print("\nResult...\n", np.emath.sqrt(arr))전체 예제 코드
import numpy as np
# array() 메서드로 NumPy 배열 생성
arr = np.array([1, -4, -9, 16, -25, 36])
# 배열 출력
print("Our Array...\n", arr)
# 차원 확인
print("\nDimensions of our Array...\n", arr.ndim)
# 데이터 타입 확인
print("\nDatatype of our Array object...\n", arr.dtype)
# 형태(Shape) 확인
print("\nShape of our Array object...\n", arr.shape)
# emath.sqrt() 메서드로 제곱근 계산
print("\nResult...\n", np.emath.sqrt(arr))실행 결과
Our Array... [ 1 -4 -9 16 -25 36] Dimensions of our Array... 1 Datatype of our Array object... int64 Shape of our Array object... (6,) Result... [1.+0.j 0.+2.j 0.+3.j 4.+0.j 0.+5.j 6.+0.j]
결과를 보면 양수인 1, 16, 36은 각각 실수부만 가진 값(1+0j, 4+0j, 6+0j)으로 반환되고, 음수인 -4, -9, -25는 허수부를 가진 복소수 값(0+2j, 0+3j, 0+5j)으로 반환된 것을 확인할 수 있습니다. 이처럼 emath.sqrt()는 수학적으로 정확한 √(-n) = i√n 공식을 적용하여 음수의 제곱근도 안전하게 처리해 줍니다.