파이썬 라이브러리 기초 - Numpy(넘파이)

안녕하세요 jay입니다.
오늘은 파이썬 라이브러리 중 하나인 
Numpy에 대해 알아보도록 하겠습니다.

Numpy란?

Numpy는 Numerical Python의 줄임말입니다.
Numpy는 고성능의 과학계산 컴퓨팅과 데이터 분석에 필요한 기본 패키지입니다.
C로 만들어져 빠르고 메모리를 효율적으로 사용하며,
벡터 및 행렬연산에 있어 매우 편리한 기능을 제공합니다.
하지만 Numpy는 고수준의 데이터 분석기능을 제공하지 않기 때문에
Pandas같은 도구를 함께 사용해 데이터 분석을 수행하는 것이 효과적입니다.

Numpy 불러오기

import를 써서 Numpy를 불러왔습니다.
import numpy as np # as는 불러오는 라이브러리의 이름을 축약해주는 역할을 합니다.

배열 만들기

불러온 np의 array함수를 이용해서
리스트를 입력값으로 넣으면
array(배열)를 만들 수 있습니다.

import numpy as np # as는 불러오는 라이브러리의 이름을 축약해주는 역할을 합니다.

# 리스트를 입력으로 하여 어레이(배열)로 만들 수 있다.
# np의 array 함수를 사용한다
data = [1,2,3,4,5,6] # 리스트
arr = np.array(data) # 배열 
print(arr) # [1 2 3 4 5 6]
type(arr)  # numpy.ndarray
# ndarray는 n dimentional array라는 뜻임

1. 2차원 리스트로부터 배열 만드는 예시


import numpy as np # as는 불러오는 라이브러리의 이름을 축약해주는 역할을 합니다.

# 2차원 리스트로부터 2차원 배열을 만드는 예
data = [[1,2,3],[4,5,6],[7,8,9]]
print(data) # [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
type(data) # list

arr = np.array(data) # list를 ndarray로
print(arr)

# [[1 2 3]
#  [4 5 6]
#  [7 8 9]]

type(arr) # numpy.ndarray

2. Numpy의 대표적 함수(dtype, shape, zeros, ones)


import numpy as np # as는 불러오는 라이브러리의 이름을 축약해주는 역할을 합니다.

# 2차원 리스트로부터 2차원 배열을 만드는 예
data = [[1,2,3],[4,5,6],[7,8,9]]
arr = np.array(data) # list를 ndarray로

# 배열의 항목의 타입을 알아보려면 dtype 속성값을 보면 된다
print(arr.dtype) # dtype('int64')

# 배열의 구조를 보려면 shape 속성을 보면 된다
print(arr.shape) # (3, 3) 3x3행렬

# 초기값이 0인 배열을 만드는 법
A = np.zeros((2,3))
print(A)

#[[0. 0. 0.]
# [0. 0. 0.]]

# 초기값이 1인 배열을 만드는 법
B = np.ones((3,2))
print(B)

#[[1. 1.]
# [1. 1.]
# [1. 1.]]

3. arange

배열 구조로 range를 만드는 법이다.
import numpy as np # as는 불러오는 라이브러리의 이름을 축약해주는 역할을 합니다.

# 배열 구조로 range를 바로 만드는 법
# 타입이 array이다

y = np.arange(5)
print(y) # [0 1 2 3 4]

print(y[2]) # 배열에서도 위치 인덱싱이 가능하다.

for i in y:
    print(i) # 0 1 2 3 4 세로로 출력
    
# -1 ~ 1까지 0.01간격으로 값을 생성
points = np.arange(-1, 1, 0.01) 
print(points[:10]) # 앞의 10개를 출력, [-1.   -0.99 -0.98 -0.97 -0.96 -0.95 -0.94 -0.93 -0.92 -0.91]

print(len(points)) # 배열의 길이를 출력, 200

4 . 배열 연산

배열을 활용해서 다양한 연산도 가능하다.


import numpy as np # as는 불러오는 라이브러리의 이름을 축약해주는 역할을 합니다.

data = [[1,2,3],[4,5,6],[7,8,9]]
arr = np.array(data) # list를 ndarray로

print(arr*2)
#[[ 2  4  6]
# [ 8 10 12]
# [14 16 18]]

print(arr+1000)
#[[1001 1002 1003]
# [1004 1005 1006]
# [1007 1008 1009]]


# 두 배열을 곱하면 각 항목별로 단순히 곱셈을 한다 (주의! 매트릭스 곱셈이 아님)
print(arr*arr)

#[[ 1  4  9]
# [16 25 36]
# [49 64 81]]

5. 배열 원소 찾기, 자르기

원하는 배열의 원소를 쉽게 찾을 수 있고
배열들 자신의 임의대로 잘라 새로운 배열도 만들 수 있다.


import numpy as np # as는 불러오는 라이브러리의 이름을 축약해주는 역할을 합니다.

data = [[1,2,3],[4,5,6],[7,8,9]]
arr = np.array(data) # list를 ndarray로

print(arr)
print(arr[1,2]) # 해당 배열 위치를 통해 원소 찾는다. (행,렬)  : 6
print(arr[1][2]) # 해당 배열 위치를 통해 원소를 찾는 두 번째 방법 : 6

# 2차원 배열 중에 한 차원의 배열만 얻으려면 인자를 한 차원 낮게 주면 된다
# 아래는 2차원 배열 중 첫번째 행만 얻는다
print(arr[0]) # [1 2 3]

# 행은 0~1의 범위를 , 열은 0~2의 범위를 얻는 예이다
print(arr[:2,:3])

#[[1 2 3]
# [4 5 6]]

# 행이나 열 전체를 표시하려면 ':'로 표시할 수 있다
print(arr[:,:2])

#[[1 2]
# [4 5]
# [7 8]]


댓글