Python, NumPy 및 숫자 형식 사용하여 중첩된 리스트에서 배열 생성 시 과학적 표기법 억제
중첩된 리스트에서 NumPy 배열을 생성할 때 과학적 표기법 사용을 억제하는 방법입니다.
필수 조건:
- Python
- NumPy
단계:
- 필요한 라이브러리 가져오기:
import numpy as np
- 중첩된 리스트 준비:
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
- 배열 생성 및 과학적 표기법 억제:
# 기본 방식 (과학적 표기법 사용)
array = np.array(data)
print(array)
# 과학적 표기법 억제
array = np.array(data, dtype=np.int32) # 데이터 형식 지정
print(array)
설명:
np.array()
함수는 리스트를 NumPy 배열로 변환합니다. 기본적으로 배열의 데이터 형식은 'float64'이며, 큰 숫자는 과학적 표기법으로 표시됩니다.dtype=np.int32
매개변수를 사용하여 배열의 데이터 형식을 'int32'로 지정하면 모든 숫자가 정수로 표시되고 과학적 표기법이 사용되지 않습니다.
참고:
- 데이터가 실제로 정수인 경우
dtype=np.int32
를 사용하여 메모리 사용량을 줄일 수 있습니다. - 데이터가 실제로 소수점 값을 포함하는 경우
dtype=np.float32
또는dtype=np.float64
와 같은 다른 데이터 형식을 사용해야 합니다.
import numpy as np
# 중첩된 리스트 준비
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 기본 방식 (과학적 표기법 사용)
array = np.array(data)
print("기본 배열:")
print(array)
# 과학적 표기법 억제
array = np.array(data, dtype=np.int32)
print("\n과학적 표기법 억제된 배열:")
print(array)
기본 배열:
[[1.000000e+00 2.000000e+00 3.000000e+00]
[4.000000e+00 5.000000e+00 6.000000e+00]
[7.000000e+00 8.000000e+00 9.000000e+00]]
과학적 표기법 억제된 배열:
[[1 2 3]
[4 5 6]
[7 8 9]]
- 첫 번째 출력에서
array
는 기본적으로 'float64' 데이터 형식을 사용하기 때문에 숫자가 과학적 표기법으로 표시됩니다. - 두 번째 출력에서
array
는dtype=np.int32
매개변수를 사용하여 생성되었기 때문에 모든 숫자가 정수로 표시되고 과학적 표기법이 사용되지 않습니다.
대체 방법: np.set_printoptions
사용
np.set_printoptions
함수를 사용하여 NumPy 배열 출력 형식을 설정하고 과학적 표기법 억제하는 방법입니다.
import numpy as np
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
np.set_printoptions
사용하여 출력 형식 설정:
# 소수점 자리수 설정 (예: 0으로 설정하면 소수점 표시 안 함)
np.set_printoptions(precision=0)
# 배열 생성
array = np.array(data)
# 배열 출력
print(array)
np.set_printoptions
함수는 NumPy 배열 출력 형식을 설정하는 데 사용됩니다.precision
매개변수는 출력될 소수점 자리수를 지정합니다. 0으로 설정하면 소수점이 표시되지 않고 과학적 표기법도 사용되지 않습니다.- 이 방법은 배열 출력 형식을 영향만 주며, 배열 자체의 데이터 형식은 변경하지 않습니다.
np.format_float_positional
함수를 사용하여 더욱 정밀한 출력 형식 설정이 가능합니다.np.savetxt
함수를 사용하여 배열을 텍스트 파일에 저장할 때도 출력 형식을 설정할 수 있습니다.
예제 코드:
import numpy as np
# 중첩된 리스트 준비
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 소수점 자리수 설정 (0으로 설정하면 소수점 표시 안 함)
np.set_printoptions(precision=0)
# 배열 생성
array = np.array(data)
# 배열 출력
print("과학적 표기법 억제된 배열:")
print(array)
출력:
과학적 표기법 억제된 배열:
[[1 2 3]
[4 5 6]
[7 8 9]]
np.set_printoptions(precision=0)
을 사용하여 소수점 자리수를 0으로 설정했습니다.- 결과적으로 배열 출력에서 과학적 표기법 없이 모든 숫자가 정수로 표시됩니다.
python numpy number-formatting