문과생 데이터사이언티스트되기15!
Numpy
jupyter notebook을 사용하다보면
import numpy as np
이 코드는 안 쓴적이 없는 것 같다,,그만큼이나 자주 쓰는 넘파이. 오늘은 Numpy에 대해서 알아보자
정의
수치 데이터를 다루는 파이썬 패키지입니다. Numpy의 핵심이라고 불리는 다차원 행렬 자료구조인 ndarray를 통해 벡터 및 행렬을 사용하는 선형 대수 계산에서 주로 사용됩니다. Numpy는 편의성뿐만 아니라, 속도면에서도 순수 파이썬에 비해 압도적으로 빠르다는 장점이 있습니다.
설치 방법
pip install numpy
conda install -y numpy
를 통해 간단히 설치할 수 있다.
장점
- 일반 List에 비해 빠르고, 메모리를 효율적으로 사용한다.
- 반복문 없이 데이터 배열에 대한 처리를 지원하여 빠르고 편리하다.
- 선형대수와 관련된 다양한 기능을 제공한다.
- C, C++, 포트란 등의 언어와 통합이 가능하다
Numpy 레퍼런스
np.array()
Numpy의 핵심은 ndarray입니다. np.array()는 리스트, 튜플, 배열로 부터 ndarray를 생성합니다. 파이썬 자료구조 중 하나인 리스트를 가지고 1차원 배열을 생성할 수 있다.
1차원 배열
# 1차원 배열
vec = np.array([1, 2, 3, 4, 5])
print(vec)
[1 2 3 4 5]
2차원 배열
# 2차원 배열
mat = np.array([[10, 20, 30], [ 60, 70, 80]])
print(mat)
[[10 20 30]
[60 70 80]]
두 배열의 타입
print('vec의 타입 :',type(vec))
print('mat의 타입 :',type(mat))
vec의 타입 : <class 'numpy.ndarray'>
mat의 타입 : <class 'numpy.ndarray'>
vec의 타입 : <class 'numpy.ndarray'>
mat의 타입 : <class 'numpy.ndarray'>
print('vec의 축의 개수 :',vec.ndim) # 축의 개수 출력
print('vec의 크기(shape) :',vec.shape) # 크기 출력
ndarray의 초기화
np.zeros()는 배열의 모든 원소에 0을 삽입
zero_mat = np.zeros((2,3))
print(zero_mat)
np.arange()
np.arange(n)은 0부터 n-1까지의 값을 가지는 배열을 생성
range_vec = np.arange(10)
print(range_vec)
np.reshape()
내부 데이터는 변경하지 않으면서 배열의 구조를 바꿉니다. 0부터 29까지의 숫자를 생성하는 arange(30)을 수행한 후, 원소의 개수가 30개이므로 5행 6열의 행렬로 변경할 수 있다.
reshape_mat = np.array(np.arange(30)).reshape((5,6))
print(reshape_mat)
[[ 0 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 29]]
Numpy 슬라이싱
ndarray를 통해 만든 다차원 배열은 파이썬의 자료구조인 리스트처럼 슬라이싱(slicing) 기능을 지원합니다. 슬라이싱 기능을 사용하여 특정 행이나 열들의 원소들을 접근할 수 있다.
mat = np.array([[1, 2, 3], [4, 5, 6]])
print(mat)
[[1 2 3]
[4 5 6]]
Numpy 정수 인덱싱(integer indexing)
mat = np.array([[1, 2], [4, 5], [7, 8]])
print(mat)
[[1 2]
[4 5]
[7 8]]
Numpy 연산
Numpy를 사용하면 배열간 연산을 손쉽게 수행할 수 있습니다. 덧셈, 뺄셈, 곱셈, 나눗셈을 위해서는 연산자 +, -, *, /를 사용할 수 있으며 또는 np.add(), np.subtract(), np.multiply(), np.divide()를 사용할 수 있다.
Author And Source
이 문제에 관하여(문과생 데이터사이언티스트되기15!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kim_haesol/문과생-데이터사이언티스트되기15저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)