본문 바로가기
  • hello world
Language/Python

[Python] Numpy: Numerical Python

by JJoajjoa 2023. 8. 23.

 

 

import numpy as np

 

np : numpy 다 쓰기 귀찮아서 줄인 것 (국룰), 다른 문자도 되긴 함

 

 

 

 

Numpy 넘파이

과학, 공학 연산을 쉽게 하도록 지원하는

다차원 배열(multi-dimensional array) 라이브러리 

배열: 순서가 있는 같은 종류의 데이터가 저장된 집합

 

넘파이를 사용해서 대규모 배열 처리를 쉽게 하도록 하고 파이썬리스트와는 차이가 있음

float이 기본적으로 생성

 

내부에 연속된 메모리 구조를 가지고

array interface를 가지고있고 (자바어레이개념과 똑같음)

C 를 통해 연산됨

 

 

https://numpy.org/devdocs/user/quickstart.html

 

NumPy quickstart — NumPy v2.0.dev0 Manual

NumPy provides familiar mathematical functions such as sin, cos, and exp. In NumPy, these are called “universal functions” (ufunc). Within NumPy, these functions operate elementwise on an array, producing an array as output. See also all, any, apply_al

numpy.org

 

♠ import numpy에 빨간 줄 뜰 때 

더보기

 

import numpy as np 했을 때 numpy에 빨간줄 뜨면

cmd에

pip install numpy

적어주고 다운받아주기

넘파이 다운받고 잘됐나 확인하기

 

 

♠ ndarray : Numpy의 배열 객체

 

 

 

# 특별한 기능

 

1. 생성함수

메서드 설 명
.array() 리스트 생성
.zeros( x )
.zeros( (n, m) )
0으로 채워서 만들어줌
.ones( x )
.ones( (n, m) )
1로 채워서 만들어 줌
.eye( x ) x * x 의 단위행렬을 만들어줌
.empty() 비워져있는거 만들어줌 (초기화 안하면 이상한 값 들어가있음)
.arange( start, stop, step ) start부터 stop까지를 step간격으로 만들어 줌
.linspace( start, stop, num ) start stop까지를  num칸으로 나눠 줌(num 기본값: 50)

 

 np.linspace(0, np.pi, 20) ← 0 부터 π까지 동일한 간격으로 나눈 20개의 데이터를 생성

 

 

 

2. 변환함수

메서드 설 명
.reshape(m, n) 1차원을 2차원으로
flatten 2차원을 1차원으로
astype 타입변환
ravel()  
swapaxes  

 

np.arange(12).reshape(4*3) ← 1차원 배열 12개를 4행*3열의 2차원 배열로 바꿔줌

 

 

3. 연산 · 집계함수

메서드 설 명
.add()  
substract  
multiply  
divide  
sqrt  
A.dot(B)
np.dot(A, B)
행렬곱(matrix product)
A.transpose()
np.transpose(A)
전치행렬(transpose matrix)
행렬 축 변환 (2*3) -> (3*2)
np.linalg.inv(A) 역행렬(inverse matrix)
np.linalg.det(A) 행렬식(determinant)
.sum()
.mean() 평균
.std() 표준편차
.max() 최댓삾
.min() 최솟값
.argmax() 제일 큰 인덱스번호
.argmin() 제일 작은 인덱스번호
.cumsum() 누적 합
.cumprod() 누적 곱

 

 

4. 논리함수

메서드 설 명
.logical_and() 둘 다 True 일 때, True
.logical_or() 둘 다 False 일 때, False
.logical_not() 뒤집개

 

 

5. 그 외

메서드 설 명
.shape() 배열의 형태를 알려줌 (배열의 형태가 같아야 배열끼리의 연산이 가능함)
.sort() 오름차순으로 정렬
.random.rand( n, m )
.random.rand( low, high, size )
난수 n*m 만들어줌 ( 기본값 0 ~ 1 사이 수)
rand() 함수: [0,1) 사이의 실수 난수를 가짐 : [이상, 미만)
low 기본값: 0, size 기본값: 1
   

 

 np.random.randint(10, size=(3, 4)) ← 10 이하의 난수 3*4 배열

 

 

데이터 타입 변경 추가 예정 (p222)