파이썬 NumPy 기본 tutorial
1. numpy import
넘파이는 외부 라이브러리이기 때문에 import한다.
1 | import numpy as np | cs |
1 | x = np.array([1,2,3,4,5]) | cs |
>>> print(x)
[1,2,3,4,5]
>>> type(x)
<class 'numpy.ndarray'>
3. N차원 array 생성
넘파이는 1차원 이상의 배열도 생성할 수 있다.
예를들어, 3X2 배열은 다음과 같이 생성한다.
1 | x = np.array([[51,55],[14,19],[0,4]]) | cs |
>>> print(x)
[[51 55]
[14 19]
[ 0 4]]
>>> x.shape
(3, 2)
>>> x.dtype
dtype('int32')
4. 1차원 배열 연산
1 2 3 4 5 6 7 | x = np.array([1,2,3,4,5]) y = np.array([6,7,8,9,10]) x+y x-y x*y x/y | cs |
>>> x + y
array([ 7, 9, 11, 13, 15])
>>> x - y
array([-5, -5, -5, -5, -5])
>>> x * y
array([ 6, 14, 24, 36, 50])
>>> x / y
array([0.16666667, 0.28571429, 0.375 , 0.44444444, 0.5 ])
5. N차원 배열 연산
1 2 3 4 5 6 | x = np.array([[1,2],[3,4]]) y = np.array([[3,0],[0,6]]) x + y x - y x * y | cs |
>>> x + y
array([[ 4, 2],
[ 3, 10]])
>>> x * y
array([[ 3, 0],
[ 0, 24]])
6. 브로드캐스트(broadcast)
* 배열 x와 y의 원소 수가 같을 때는 같은 위치에 있는 원소별로 연산이 이루어진다. 원소의 수가 다를 때는 일반적으로 에러가 난다.
단, 둘 중 한 배열의 길이가 1일 때는 에러없이 성공적으로 연산된다. 이를 브로드캐스트라 한다.
1 2 3 4 5 6 | x = np.array([1,2,3,4]) y = np.array([6]) x + y x * y | cs |
>>> x + y
array([ 7, 8, 9, 10])
>>> x * y
array([ 6, 12, 18, 24])
1 2 3 4 5 | x = np.array([[1,2],[3,4]]) y = np.array([3]) x + y x * y | cs |
>>> x + y
array([[4, 5],
[6, 7]])
>>> x * y
array([[ 3, 6],
[ 9, 12]])
1 2 3 4 5 | x = np.array([[1,2],[3,4]]) y = np.array([3,0]) x + y x * y | cs |
>>> x + y
array([[4, 2],
[6, 4]])
>>> x * y
array([[3, 0],
[9, 0]])
7. 인덱싱
array의 index는 0부터 시작한다.
1 2 | x = np.array([[51,55],[14,19],[0,4]]) | cs |
>>> print(x)
[[51 55]
[14 19]
[ 0 4]]
7.1 첫 번째 원소 indexing
>>> x[0][0]
51
>>> x[0,0]
51
7.2 첫 번째 행 indexing
>>> x[0]
array([51, 55])
>>> x[0,:]
array([51, 55])
7.3 첫 번째 열 indexing
>>> x[:,0]
array([51, 14, 0])
8. 배열 shape 바꾸기
array.reshape() 매소드를 통해 3X2의 배열을 2X3으로, 1X6, 6X1 로 바꿀 수 있다.
1 2 3 4 | x = np.array([[51,55],[14,19],[0,4]]) x.reshape(2,3) x.reshape(1,6) | cs |
>>> x.reshape(2,3)
array([[51, 55, 14],
[19, 0, 4]])
>>> x.reshape(1,6)
array([[51, 55, 14, 19, 0, 4]])
이때, array.flatten() 매소드를 통해 N차원 배열을 1차원으로 바꿀 수 있다.
>>> x.flatten()
array([51, 55, 14, 19, 0, 4])
'Python' 카테고리의 다른 글
[python] 파이썬으로 순열, 조합 구하기 :: permutation in python/ combination in python (3) | 2019.11.20 |
---|---|
[python] 튜플 정렬하기(두 번째 원소로 정렬하기) :: tuple sorting in python (1) | 2019.11.16 |
[python] 이차방정식 해 구하기 in python 파이썬 (0) | 2019.08.25 |
문자열, list 뒤집기(reverse string or list in python) (0) | 2019.08.16 |
[python] list, 문자열 에서 특정 element 개수 찾기 (list.count() in python) (0) | 2019.08.12 |