소개
NumPy 는 Python 프로그래밍 언어를 위한 라이브러리로, Python 에서 수치 연산을 수행하는 데 사용됩니다. NumPy 는 다차원 배열을 사용하여 수치 데이터를 편리하게 처리할 수 있는 방법을 제공합니다. 이 튜토리얼에서는 NumPy 배열을 생성, 접근 및 수정하는 방법과 사용 가능한 다양한 데이터 유형을 살펴보겠습니다.
NumPy 는 Python 프로그래밍 언어를 위한 라이브러리로, Python 에서 수치 연산을 수행하는 데 사용됩니다. NumPy 는 다차원 배열을 사용하여 수치 데이터를 편리하게 처리할 수 있는 방법을 제공합니다. 이 튜토리얼에서는 NumPy 배열을 생성, 접근 및 수정하는 방법과 사용 가능한 다양한 데이터 유형을 살펴보겠습니다.
Ternimal 에서 새로운 Python 인터프리터를 엽니다.
python3
배열 작업을 시작하기 전에, 먼저 배열을 생성해야 합니다. NumPy 는 다음과 같은 여러 가지 배열 생성 방법을 제공합니다.
이 함수는 Python 리스트 또는 튜플로부터 배열을 생성합니다.
import numpy as np
## Python 리스트로부터 배열 생성
my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)
print(my_array) ## Output: [1 2 3 4 5]
## Python 튜플로부터 배열 생성
my_tuple = (6, 7, 8, 9, 10)
my_array = np.array(my_tuple)
print(my_array) ## Output: [ 6 7 8 9 10]
이 함수는 주어진 모양 (shape) 의 0 으로 채워진 배열을 생성합니다.
## 0 으로 채워진 배열 생성
my_array = np.zeros((3, 4))
print(my_array)
## Output:
## [[0. 0. 0. 0.]
## [0. 0. 0. 0.]
## [0. 0. 0. 0.]]
이 함수는 주어진 모양의 1 로 채워진 배열을 생성합니다.
## 1 로 채워진 배열 생성
my_array = np.ones((2, 3))
print(my_array)
## Output:
## [[1. 1. 1.]
## [1. 1. 1.]]
이 함수는 주어진 범위 내에서 균등하게 간격을 둔 값으로 배열을 생성합니다.
## 균등하게 간격을 둔 값으로 배열 생성
my_array = np.arange(0, 10, 2)
print(my_array) ## Output: [0 2 4 6 8]
이 함수는 두 개의 끝점 사이에서 균등하게 간격을 둔 값으로 배열을 생성합니다.
## 두 개의 끝점 사이에서 균등하게 간격을 둔 값으로 배열 생성
my_array = np.linspace(0, 1, 5)
print(my_array) ## Output: [0. 0.25 0.5 0.75 1. ]
1 차원 배열의 요소에 접근하려면 해당 인덱스를 사용하면 됩니다.
my_array = np.array([1, 2, 3, 4, 5])
print(my_array[0]) ## Output: 1
다차원 배열의 요소에 접근하려면 각 차원에서 해당 위치를 지정해야 합니다.
my_array = np.array([[1, 2], [3, 4], [5, 6]])
print(my_array[1, 0]) ## Output: 3
배열의 요소 값을 수정하려면 새로운 값을 할당하면 됩니다.
my_array = np.array([1, 2, 3])
my_array[2] = 4
print(my_array) ## Output: [1 2 4]
배열의 슬라이스 (slice) 도 수정할 수 있습니다.
my_array = np.array([1, 2, 3, 4, 5])
my_array[1:4] = [6, 7, 8]
print(my_array) ## Output: [1 6 7 8 5]
NumPy 배열은 정수, 부동 소수점 숫자, 부울 (boolean) 과 같은 다양한 데이터 타입의 요소를 저장할 수 있습니다. NumPy 는 다음과 같은 다양한 데이터 타입을 제공합니다.
| 데이터 타입 (Data Type) | 설명 |
|---|---|
| int_ | 정수 (Integer) |
| int8 | 8 비트 정수 |
| int16 | 16 비트 정수 |
| int32 | 32 비트 정수 |
| int64 | 64 비트 정수 |
| uint8 | 부호 없는 8 비트 정수 |
| uint16 | 부호 없는 16 비트 정수 |
| uint32 | 부호 없는 32 비트 정수 |
| uint64 | 부호 없는 64 비트 정수 |
| float_ | 부동 소수점 숫자 (Floating point number) |
| float16 | 반정밀도 부동 소수점 숫자 |
| float32 | 단정밀도 부동 소수점 숫자 |
| float64 | 배정밀도 부동 소수점 숫자 |
| complex_ | 복소수 (Complex number) |
| complex64 | 두 개의 32 비트 부동 소수점으로 표현되는 복소수 |
| complex128 | 두 개의 64 비트 부동 소수점으로 표현되는 복소수 |
| bool_ | 부울 (Boolean) |
| object_ | 객체 (모든 Python 객체를 포함할 수 있음) |
배열의 데이터 타입을 지정하려면 dtype 매개변수를 사용할 수 있습니다.
## 특정 데이터 타입으로 배열 생성
my_array = np.array([1, 2, 3], dtype=np.float64)
print(my_array) ## Output: [1. 2. 3.]
astype() 메서드를 사용하여 배열을 다른 데이터 타입으로 변환할 수도 있습니다.
## 배열을 다른 데이터 타입으로 변환
my_array = np.array([1, 2, 3], dtype=np.int32)
my_array = my_array.astype(np.float64)
print(my_array) ## Output: [1. 2. 3.]
이 튜토리얼에서는 NumPy 배열을 생성, 접근 및 수정하는 방법과 사용 가능한 다양한 데이터 타입을 살펴보았습니다. NumPy 는 Python 에서 수치 데이터를 다루기 위한 강력한 라이브러리이며, 배열 조작을 위한 많은 유용한 함수와 메서드를 제공합니다.