numpy 모듈
과학 연산과 인공지능 행렬 연산을 위해서 설계된 파이썬 라이브러리 입니다.
다차원 배열 처리와 수학 기능들을 쓸수 있고 , 내부적으로 c언어 구현되어있어 매우 빠르고 효율적입니다.
설치하기(윈도우 / 맥 mac)
pip (파이썬 패키지 관리 시스템) 를 설치 안했다면? (맥 MAC) - 3.9 버전 기준
윈도우는 python3.9 대신에 python을 입력하세요!
pip로 numpy 설치하기
윈도우 cmd
python -m pip install numpy
맥 터미널 (3.9 버전 기준)
python3.9 -m pip install numpy
numpy array 생성하기
numpy의 array 메소드를 통해 배열로 변환할수 있습니다.
numpy의 arange 함수 (리스트의 range와 동일)
import numpy as np
print(np.arange(10))
#0~10이전까지 # 0 1 2 3 4 5 6 7 8 9
print(np.arange(1,10,2))
#0~10이전까지 두칸씩 # 0 1 3 5 7 9
print(np.arange(1,2,0.1))
# 1. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9
zeros - 0 으로 이루어진 배열, ones - 1로 이루어진 배열
eye - 1로 이루어진 대각행렬
수학 메소드
import numpy as np 로 선언했다고 가정했을때,
- np.sqrt() : 제곱근 구하기
- np.sin() , np.cos() ... : 삼각함수 값 구하기
- np.pi : 파이 값
- np.random.rand(5) 0~1사이 실수로 크기 5 배열 생성
- np.random.choice(10 ,5) 0~10 사이 정수로 크기 5 배열 생성
n차원 행렬 만들기
[0,1,2,3,4,5,6,7,8,9] 배열을 arange로 생성하고 reshape를 이용해 2*5 2차원 행렬만들기
행렬[m,n]를 이용해 그 좌표의 값을 반환하는 인덱싱을 할 수 있습니다.
행렬 연산자로 연산
행렬합을 쓸수 있고, 곱과 나누기는 각 대응되는 원소들 끼리 연산해서 행렬을 출력합니다.
행렬 곱(내적) 과 전치하기(transpose)
numpy의 dot(a ,b)를 이용해서 내적할수 있고 , a.T 또는 a.transpose()를 이용해서 전치행렬로 만들수 있습니다.
내적함수는 굳이 한쪽 행렬을 전치 하지 않아도 내적 할수 있습니다.
예시) 코싸인 유사도 구하기
import numpy as np
import matplotlib.pyplot as plt
Docs = np.array([[1,1,0,1,0,1] , [1,1,1,0,1,0] , [1,1,0,1,0,0]])
Query = np.array([1,1,0,0,1,0])
q_size = np.sqrt(np.dot(Query,Query))
result = []
x=[]
for i,d in enumerate(Docs[:]):
d_size = np.sqrt(np.dot(d,d))
cos = np.dot(d,Query)/(d_size*q_size)
x.append("doc{0:d}={1:.2f}".format(i+1 , cos))
result.append(cos)
plt.bar(x , result)
plt.show()
마스크 씌우기
마스크는 배열[조건]으로 씌울수 있습니다.
조건에 알맞은 항만 남아서 배열/행렬을 이룹니다.
반응형
'알고리즘 PS (백준) > 🐍 Python (파이썬)' 카테고리의 다른 글
[파이썬 python] Matplot 설치 및 활용 (데이터 시각화 , 그래프) (2) | 2022.06.19 |
---|---|
[파이썬 python] Pandas 설치 및 활용 (데이터 프레임) (0) | 2022.06.07 |
[파이썬 python] 클래스 (객체 , class) 만들기 (0) | 2022.06.02 |
[파이썬 python] 파일 입출력 , csv 파일 읽기 + (기상,지하철 데이터 분석) (0) | 2022.06.01 |
[파이썬 python] 리스트(list) , 튜플 , 딕셔너리 (dict) , 문자열 관련 함수 (0) | 2022.05.12 |
댓글