NumPy 배열을 정밀도 지정 및 과학적 표기법 없이 출력하는 방법
NumPy 배열을 다룰 때, 특히 실수 값을 포함하는 경우, 배열의 차원이 낮더라도 값들이 과학적 표기법으로 출력되는 경우가 많습니다. 이는 읽기 어려울 수 있으며, 특히 원하는 정밀도로 값을 확인하고 싶을 때 더욱 불편합니다.
다행히 NumPy는 배열을 원하는 형식으로 출력하도록 설정하는 다양한 옵션을 제공합니다. 다음은 과학적 표기법 없이 지정된 정밀도로 NumPy 배열을 출력하는 두 가지 방법입니다.
set_printoptions() 함수 사용
set_printoptions()
함수는 NumPy 배열 출력 형식을 설정하는 데 사용됩니다. 이 함수는 두 가지 주요 매개변수를 사용합니다.
suppress
: 과학적 표기법 사용 여부를 제어합니다.True
로 설정하면 작은 값도 표준 형식으로 출력됩니다.precision
: 출력할 소수점 자리 수를 지정합니다.
다음 코드는 set_printoptions()
함수를 사용하여 배열을 2 소수점까지 출력하는 방법을 보여줍니다.
import numpy as np
np.set_printoptions(suppress=True, precision=2)
arr = np.array([1.23456, 0.00123456, 1000.123])
print(arr)
이 코드는 다음과 같은 결과를 출력합니다.
[ 1.23 0.00 1000.12]
f 문자열 형식 사용
f
문자열 형식을 사용하여 NumPy 배열을 원하는 형식으로 직접 출력할 수도 있습니다. 다음 코드는 배열을 2 소수점까지 출력하는 방법을 보여줍니다.
import numpy as np
arr = np.array([1.23456, 0.00123456, 1000.123])
print("{:.2f}".format(arr[0]))
print("{:.2f}".format(arr[1]))
print("{:.2f}".format(arr[2]))
1.23
0.00
1000.12
두 방법 모두 원하는 정밀도로 NumPy 배열을 출력하는 데 효과적입니다. set_printoptions()
함수는 모든 배열 출력에 영향을 미치는 반면, f
문자열 형식은 특정 배열 요소에만 적용됩니다. 상황에 맞게 적절한 방법을 선택하십시오.
추가 정보
예제 코드: NumPy 배열을 정밀도 지정 및 과학적 표기법 없이 출력
다음은 앞서 설명한 두 가지 방법을 보여주는 예제 코드입니다.
set_printoptions() 함수 사용
import numpy as np
np.set_printoptions(suppress=True, precision=2)
# 1차원 배열
arr1 = np.array([1.23456, 0.00123456, 1000.123])
print("1차원 배열:")
print(arr1)
# 2차원 배열
arr2 = np.array([[1.5, 2.34, 5.67], [8.9, 10.11, 12.13]])
print("\n2차원 배열:")
print(arr2)
1차원 배열:
[ 1.23 0.00 1000.12]
2차원 배열:
[[ 1.50 2.34 5.67]
[ 8.90 10.11 12.13]]
f 문자열 형식 사용
import numpy as np
arr = np.array([1.23456, 0.00123456, 1000.123])
# 각 요소를 개별적으로 출력
print("{:.2f} {:.2f} {:.2f}".format(arr[0], arr[1], arr[2]))
1.23 0.00 1000.12
본 예제 코드는 1차원 및 2차원 배열에 대한 출력을 보여주지만, 원하는 형태의 NumPy 배열에 적용할 수 있습니다.
참고
- 코드에서
arr1
과arr2
는 예시이며, 원하는 데이터로 변경해야 합니다. - 출력 형식을 원하는 대로 조정할 수 있습니다. 예를 들어, 소수점 자리 수를 변경하거나 특정 구분 기호를 사용할 수 있습니다.
NumPy 배열 출력을 위한 대체 방법
앞서 설명한 두 가지 방법 외에도 NumPy 배열을 정밀도 지정 및 과학적 표기법 없이 출력하는 데 사용할 수 있는 몇 가지 대체 방법이 있습니다.
np.array2string() 함수 사용
np.array2string()
함수는 NumPy 배열을 문자열로 변환합니다. 이 함수는 다음과 같은 매개변수를 사용하여 출력 형식을 제어할 수 있습니다.
suppress_small
: 작은 값을 0으로 표시할지 여부를 제어합니다.float_format
: 부동 소수점 값 형식을 지정합니다.
import numpy as np
arr = np.array([1.23456, 0.00123456, 1000.123])
print(np.array2string(arr, precision=2))
'[ 1.23 0.00 1000.12]'
pandas 라이브러리 사용
pandas
라이브러리는 데이터 분석 및 조작을 위한 강력한 도구입니다. Pandas DataFrame을 사용하여 NumPy 배열을 출력할 수 있으며, 출력 형식을 제어하는 데 다양한 옵션을 제공합니다.
import pandas as pd
import numpy as np
arr = np.array([1.23456, 0.00123456, 1000.123])
df = pd.DataFrame(arr)
print(df.to_string(index=False))
0
0 1.23
1 0.00
2 1000.12
사용자 정의 함수 사용
원하는 출력 형식을 정확히 제어해야 하는 경우 사용자 정의 함수를 사용하는 것이 좋습니다. 다음은 NumPy 배열을 2 소수점까지 출력하는 사용자 정의 함수의 예입니다.
import numpy as np
def print_array(arr, precision=2):
for num in arr:
print("{:.2f}".format(num))
arr = np.array([1.23456, 0.00123456, 1000.123])
print_array(arr)
1.23
0.00
1000.12
결론
NumPy 배열을 정밀도 지정 및 과학적 표기법 없이 출력하는 데는 여러 가지 방법이 있습니다. 상황에 맞는 가장 적합한 방법을 선택하십시오.
- 간단하고 빠른 방법:
set_printoptions()
함수 사용 - 특정 요소만 출력:
f
문자열 형식 사용 - 더 많은 제어 필요:
np.array2string()
함수 또는pandas
라이브러리 사용 - 최고의 제어 필요: 사용자 정의 함수 사용
python numpy pretty-print