넘파이 객체의 속성
- ndim : 배열의 축(차원)의 수
- shape : 배열의 형태
- size : 배열 내 원소의 총 개수
- dtype : 배열 내 원소들의 자료형
import numpy as np
a = np.array([[1,2,3], [1,5,9], [3,5,7]])
print(a.ndim, a.shape, a.size, a.dtype) # 각각 차원수, 배열 형태, 총 원소 개수, 배열 내 원소들의 자료형
넘파이 객체 생성
- numpy.zeros : 모든 배열의 원소가 0인 배열 생성
- numpy.ones : 모든 배열의 원소가 1인 배열 생성
- numpy.empty : 배열의 크기만 정해주고, 원소는 초기화 되지 않은 배열 생성
- numpy.arange : 배열의 원소들이 수열을 구성
- numpy.full : 배열의 모든 값이 하나의 상수인 배열 생성
- numpy.random.random : 배열의 원소를 0부터 1사이의 임의의 값으로 생성
# 모든 배열의 원소가 0인 배열 생성
a = np.zeros((2,3))
print(a)
# 모든 배열의 원소가 1인 배열 새애성
a = np.ones((2,3))
print(a)
# 원소값을 초기화하지 않은 배열 생성
a = np.empty((2,2))
print(a)
# 10부터 30전까지 5단위로 배열 생성
a = np.arange(10,30,5)
print(a)
# 원소가 모두 4인 배열 생성
a = np.full((2,2), 4)
print(a)
# 3x3 크기의 단위행렬 생성
a = np.eye(3)
print(a)
# 임의값을 가지는 배열 생성
a = np.random.random((3,3))
print(a)
넘파이 기본 연산
넘파이 배열 생성
a = np.array([1,2,3])
b = np.array([10,20,30])
c = np.array([[1,2],
[3,4]])
d = np.array([[10,20],
[30,40]])
- 배열 합
# 배열 합
print(a+b)
print(np.add(a,b))
- 배열 차
# 배열 차
print(a-b)
print(np.subtract(a,b))
- 제곱 연산
# 제곱 연산
print(a**2)
- 논리 연산
# 논리 연산
print(b<15)
- 원소별 곱셈
# 원소별 곱셉
print(c*d)
- 배열 내적 계산(행렬곱)
# 내적 (dot product) 계산, 다른 말로 행렬곱
print(np.dot(c,d))
축을 기준으로 한 연산
- 배열 생성
a = np.array([[1,2,3,4],
[5,6,7,8],
[1,3,5,7]])
- 0축, 열을 기준으로 한 덧셈
# 0축, 즉 열을 기준으로 한 덧셈
print(a.sum(axis = 0))
- 1축, 행을 기준으로 한 덧셈
# 1축, 즉 행을 기준으로 한 덧셈
print(a.sum(axis = 1))
- 각 행에서의 최대값
# 각 행에서의 최대값
print(a.max(axis = 1))
넘파이 배열의 인덱싱, 슬라이싱
- 배열 생성
a = np.array([1,2,3,4,5,6,7])
- 배열의 첫번째 원소
print(a[0])
- 마지막 원소
# 마지막 원소
print(a[-1])
- 인덱스값 2부터 5까지의 원소
# 인덱스값 2부터 5를 가지는 원소 전까지
print(a[2: 5])
- 다차원 배열의 인덱싱, 슬라이싱
# 다차원 배열의 인덱싱, 슬라이싱
n = np.array([[1,2,3],
[4,5,6],
[7,8,9]])
# 다차원 배열의 인덱싱
print(n[1,2])
# 1열의 모든 원소
print(n[:,1])
# 마지막 행
print(n[-1])
넘파이 배열을 이용한 배열 형태 변환
- ndarray.ravel() : 배열을 1차원 배열로 변환
- ndarray.reshape() : 배열의 형태를 바꿈
- ndarray.T : 트렌스포즈 된 배열 생성, 행렬의 트렌스포즈와 같음
- 배열 생성
a = np.array([[1,2,3,4],
[5,6,7,8],
[9,10,11,12]])
- 1차원 배열로 변환
# 1차원 배열(벡터)로 변환
print(a.ravel())
- 배열 형 변환
# (2,6) 형태로 배열 형태 변환
print(a.reshape(2,6))
# reshape의 경우 특정한 행, 열만 지정해도 나머지는 자동으로 수행
print(a.reshape(4, -1))
print(a.reshape(-1, 2))
- 배열 트랜스포즈
# 배열 트랜스포즈
print(a.T)
넘파이 브로드캐스팅
- 넘파이는 브로드캐스팅 기능을 통해 다른 형태의 배열끼리도 연산이 가능
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
b = np.array([1,0,1])
y = np.empty_like(a) # 배열 a와 크기가 같은 원소가 비어있는 배열 생성
c = a+b
print(c)
'AI > Python Module' 카테고리의 다른 글
pip 패키지 관리자 (0) | 2022.07.18 |
---|---|
Pandas #Series #DataFrame #인덱스 활용 (0) | 2021.11.29 |
Python #eunjeon, mecab 모듈 설치 (0) | 2021.10.21 |
Python #KoNLPy (0) | 2021.10.19 |
PyAutoGUI #파이썬 마우스 키보드 이벤트 제어 (0) | 2021.10.17 |