| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 서열정렬
- AP
- 생물정보학
- HMM
- RNN
- Java
- 바이오인포매틱스
- MERS
- 오류역전파
- BLaST
- bioinformatics
- 이항분포
- COVID
- 파이썬
- 결정트리
- 캐글
- 인공지능
- Kaggle
- AP Computer Science A
- CNN
- 블록체인
- 바이오파이썬
- ncbi
- SVM
- 인공신경망
- 시그모이드
- 자바
- 인공지능 수학
- 딥러닝
- 생명정보학
- Today
- Total
데이터 과학
파이썬 numpy 본문
넘파이(numpy)는 파이썬의 대표적인 과학 계산 패키지로, 대규모 다차원 배열과 행렬 연산에 사용됩니다.
이 패키지는 과학 기술 분야에서 데이터 분석과 처리에 필요한 다양한 함수들을 제공합니다. 이 중에서도 특히 다차원 배열 연산에 효과적인 함수들이 많이 있습니다. 즉, 배열의 생성, 변환, 연산 등 다양한 기능을 제공합니다.
넘파이를 사용하면 파이썬 리스트(list)에 비해 빠르고 간단하게 다차원 배열을 다룰 수 있습니다.
이번에는 넘파이에서 제공하는 주요 함수들에 대해 자세히 알아보겠습니다.
1. np.array()
np.array() 함수는 리스트(list)나 튜플(tuple)을 인자로 받아서 다차원 배열을 생성합니다. 예를 들어, 다음과 같이 1차원 배열을 생성할 수 있습니다.
>>>import numpy as np
>>>arr1 = np.array([1, 2, 3, 4, 5])
2차원 배열을 생성할 때는 리스트의 리스트(list of lists)를 인자로 전달합니다.
다음은 np.array() 함수를 사용하여 1차원, 2차원 배열을 만드는 예시입니다.
>>>import numpy as np
>>>arr1 = np.array([1, 2, 3]) # 1차원 배열
>>>arr2 = np.array([[1, 2], [3, 4]]) # 2차원 배열
2. np.arange()
np.arange() 함수는 파이썬 내장 함수인 range()와 유사하며, 지정한 범위 내에서 값을 생성하여 배열을 만들어주는 함수입니다. 다음은 np.arange() 함수를 사용하여 0부터 9까지의 값을 가지는 1차원 배열을 생성하는 예시입니다.
>>>import numpy as np
>>>arr = np.arange(10)
>>>print(arr) # [0 1 2 3 4 5 6 7 8 9]
3. np.linspace()
np.linspace() 함수는 지정한 범위 내에서 일정한 간격으로 값을 생성하여 배열을 만들어주는 함수입니다.
다음은 np.linspace() 함수를 사용하여 0부터 1까지의 범위에서 5개의 값을 가지는 1차원 배열을 생성하는 예시입니다.
>>>import numpy as np
>>>arr = np.linspace(0, 1, 5)
>>>print(arr) # [0. 0.25 0.5 0.75 1. ]
4. np.zeros()
np.zeros() 함수는 모든 요소가 0인 다차원 배열을 생성합니다. 함수의 인자로는 배열의 크기를 튜플(tuple) 형태로 전달합니다. 예를 들어, 3행 4열의 배열을 생성하려면 다음과 같이 작성할 수 있습니다.
>>>arr3 = np.zeros((3, 4))
5. np.ones()
np.ones() 함수는 모든 요소가 1인 다차원 배열을 생성합니다. 함수의 인자로는 배열의 크기를 튜플(tuple) 형태로 전달합니다. 예를 들어, 2행 3열의 배열을 생성하려면 다음과 같이 작성할 수 있습니다.
>>>arr4 = np.ones((2, 3))
6. np.eye()
np.eye() 함수는 대각선 요소가 1이고 나머지 요소가 0인 단위 행렬(identity matrix)을 생성합니다. 함수의 인자로는 배열의 크기를 정수(integer) 형태로 전달합니다. 예를 들어, 3행 3열의 배열을 생성하려면 다음과 같이 작성할 수 있습니다.
>>>arr5 = np.eye(3)
np.zeros(), np.ones(), np.empty() 함수는 각각 모든 요소가 0, 1, 또는 초기화되지 않은 값을 가진 지정한 shape(형상)의 배열을 생성합니다. 기본 데이터 타입은 float입니다.
7. np.random.rand()
np.random.rand() 함수는 지정한 크기의 배열을 생성하고, 각 요소를 0과 1사이의 균일 분포(uniform distribution)에서 무작위로 추출합니다. 함수의 인자로는 배열의 크기를 정수(integer) 형태로 전달합니다. 예를 들어, 2행 3열의 배열을 생성하려면 다음과 같이 작성할 수 있습니다.
>>>arr6 = np.random.rand(2, 3)
8. np.reshape()
np.reshape() 함수는 다차원 배열의 크기를 변경하거나 배열의 형태를 바꾸어주는 함수입니다.
다음은 np.reshape() 함수를 사용하여 1차원 배열을 2차원 배열로 변환하는 예시입니다.
>>>import numpy as np
>>>arr1 = np.array([1, 2, 3, 4, 5, 6])
>>>arr2 = arr1.reshape(2, 3)
>>>print(arr2)
# [[1 2 3]
# [4 5 6]]
9. np.transpose()
np.transpose() 함수는 배열의 행과 열을 바꾸어주는 함수입니다.
다음은 np.transpose() 함수를 사용하여 2차원 배열의 행과 열을 바꾸는 예시입니다.
>>>import numpy as np
>>>arr1 = np.array([[1, 2], [3, 4]])
>>>arr2 = np.transpose(arr1)
>>>print(arr2)
# [[1 3]
# [2 4]]
numpy에서 사용되는 함수들을 정리를 하면 다음과 같습니다.
np.array() : 파이썬 리스트를 넘파이 배열로 변환합니다.
np.zeros() : 모든 요소가 0인 배열을 생성합니다.
np.ones() : 모든 요소가 1인 배열을 생성합니다.
np.full() : 지정한 값으로 모든 요소를 채운 배열을 생성합니다.
np.arange() : 지정한 범위 내에서 균일한 간격을 갖는 값을 생성하여 배열을 반환합니다.
np.linspace() : 지정한 범위 내에서 지정한 개수만큼 균일한 간격을 갖는 값을 생성하여 배열을 반환합니다.
np.reshape() : 배열의 크기를 변경합니다.
np.transpose() : 배열의 행과 열을 바꿉니다.
np.dot() : 두 배열의 내적을 계산합니다.
np.sum() : 배열의 합을 계산합니다.
np.mean() : 배열의 평균을 계산합니다.
np.std() : 배열의 표준 편차를 계산합니다.
np.min() : 배열의 최솟값을 찾습니다.
np.max() : 배열의 최댓값을 찾습니다.
이 외에도 다양한 함수들이 존재하며, 넘파이 배열을 다룰 때는 이러한 함수들을 적극적으로 활용하면 유용합니다.
아래 예제는 numpy 함수들에 대한 예제들입니다. 실습을 한번 해 보면 numpy함수에 대해 간단히 이해할 수 있습니다.
>>>import numpy as np
# 1차원 배열 만들기
>>>arr1 = np.array([1, 2, 3, 4, 5])
>>>print(arr1) # [1 2 3 4 5]
# 2차원 배열 만들기
>>>arr2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
>>>print(arr2)
# [[1 2 3]
# [4 5 6]
# [7 8 9]]
# 배열의 크기 변경하기
>>>arr3 = np.array([1, 2, 3, 4, 5, 6])
>>>arr3 = arr3.reshape(2, 3)
>>>print(arr3)
# [[1 2 3]
# [4 5 6]]
# 배열의 행과 열을 바꾸기
>>>arr4 = np.array([[1, 2], [3, 4]])
>>>arr4 = np.transpose(arr4)
>>>print(arr4)
# [[1 3]
# [2 4]]
# 배열의 내적 구하기
>>>arr5 = np.array([1, 2, 3])
>>>arr6 = np.array([4, 5, 6])
>>>arr7 = np.dot(arr5, arr6)
>>>print(arr7) # 32
# 배열의 합, 평균, 표준편차, 최솟값, 최댓값 구하기
>>>arr8 = np.array([1, 2, 3, 4, 5])
>>>print(np.sum(arr8)) # 15
>>>print(np.mean(arr8)) # 3.0
>>>print(np.std(arr8)) # 1.4142135623730951
>>>print(np.min(arr8)) # 1
>>>print(np.max(arr8)) # 5
이 예제에서는 넘파이를 사용하여 1차원, 2차원 배열을 만들고 크기를 변경하며, 배열의 내적을 계산하고 합, 평균, 표준편차, 최솟값, 최댓값을 구하는 함수들을 사용하였습니다. 이처럼 넘파이를 사용하면 다차원 배열을 쉽게 다룰 수 있으며, 다양한 연산을 효과적으로 수행할 수 있습니다.