일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 |
- 분석 툴
- michigan university deep learning for computer vision
- Random Forest
- 삼성 SDS
- 딥러닝
- Brigthics Studio
- Brightics 서포터즈
- 데이터 분석
- 검증 평가 지표
- 브라이틱스 서포터즈
- 파이썬 내장 그래프
- 브라이틱스 AI
- Activation Function
- 삼성 SDS 서포터즈
- 서포터즈 촬영
- Brightics EDA
- 파이썬 SQL 연동
- pymysql
- 브라이틱스 프로젝트
- Python
- paper review
- 브라이틱스 분석
- Brightics AI
- 머신러닝
- Brightics studio
- Deep Learning for Computer Vision
- 범주형 변수 처리
- 비전공자를 위한 데이터 분석
- 데이터 분석 플랫폼
- 브라이틱스 스태킹
- Today
- Total
하마가 분석하마
[python] Numpy method 본문
Numpy Method
Numpy
Numpy array 에는 넘파이 메소드를 사용해야만 처리를 할 수 있기에 자주 사용하는 메소드를 기억해두면 좋습니다.
넘파이 데이터 차원과 형태
Numpy array로 만든 데이터의 차원, 크기, 타입 살펴보기
import numpy as np
data = np.array([[1,2], [3,4], [5,6]])
data
print(data.shape) # (3, 2)
print(data.size) # 6
print(data.ndim) # 2
print(data.nbytes) # 24
print(data.dtype) # int32
수치형 데이터 타입
Numpy array 데이터의 형 변환과 설정 방법
print(np.array([1,2,3], dtype=np.int)) # [1 2 3]
print(np.array([1,2,3], dtype=np.float)) # [1. 2. 3.]
print(np.array([1,2,3], dtype=np.complex)) # [1.+0.j 2.+0.j 3.+0.j]
정수형으로 data 생성하고 추후 실수형으로 변환
## 형 변환
data = np.array([[1,2], [3,4], [5,6]], dtype = np.int)
data.astype(np.float)
넘파이 어레이를 만드는 여러 메소드
1. np.zeros(), np.ones(), np.full()
Numpy array를 만들 때, 원하는 형태로 생성하는 방법에 대해 알아보겠습니다.
# 2행 3열의 행렬 형태로 0 채워 넣기
print(np.zeros((2,3)), end='\n\n')
# 4개의 값을 1로 하여 어레이 만들기
print(np.ones(4), end='\n\n')
# 3개의 값을 3.2로 하여 어레이 채우기
print(np.full(3,3.2), end='\n\n')
2. np.fill()
data = np.ones(4)
data.fill(3)
print(data) # [3. 3. 3. 3.]
3. np.arange(), np.linspace(), np.logspace()
print(np.arange(0,12,4), end='\n\n') # [0 4 8]
# 4개의 포인트 설정하여 3개의 구간으로 나누기
print(np.linspace(0,16,4), end = '\n\n') # [ 0. 5.33333333 10.66666667 16. ]
print(np.logspace(0,2,3)) # [ 1. 10. 100.]
4. np.meshgrid()
x = np.array([-1,0,1])
y = np.array([-2,0,2])
x,y = np.meshgrid(x,y)
print(x, end='\n\n')
print(y)
5. np.random.rand()
# 0과 1사이의 랜덤 수
np.random.rand(2) # array([0.96537725, 0.98760822])
6. np.identity()
# 항등 행렬
np.identity(3)
7. np.diag()
# diagonal matrix
np.diag(np.arange(0,30,10))
인덱싱과 슬라이싱
Numpy array에서 ::는 간격을 의미한다.
a = np.arange(0, 11)
print(a[0]) # 0
print(a[-1]) # 10
print(a[0:5]) # [0 1 2 3 4]
print(a[0:5:2]) # [0 2 4]
print(a[:5]) # [0 1 2 3 4]
print(a[-5:]) # [ 6 7 8 9 10]
print(a[::-2]) # [10 8 6 4 2 0]
a = np.array([[1,2,3,4],
[11,12,13,14],
[21,22,23,24],
[31,32,33,34]])
print(a[:,1], end='\n\n') # [ 2 12 22 32]
print(a[1,:], end='\n\n') # [11 12 13 14]
print(a[:2,:2], end='\n\n')
print(a[2:,:2], end='\n\n')
print(a[::2,::2], end='\n\n')
print(a[1::2,1::2], end='\n\n')
array로 선택해서 인덱싱
# 0~1 사이에 11개 만들기 (같은 간격으로)
data = np.linspace(0,1,11)
print(data, end='\n\n') # [0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1. ]
print(data[np.array([0,2,4])], end='\n\n') # [0. 0.2 0.4]
print(data[data>0.5], end='\n\n') # [0.6 0.7 0.8 0.9 1. ]
print(data[np.arange(2,5)], end='\n\n') # [0.2 0.3 0.4]
Resizing and Adding dim
1. np.flatten()
# reshape
data = np.array([[1,2],
[3,4]])
np.reshape(data, (1,4))
data.flatten()
2. np.vstack() & np.hstack()
data = np.arange(5)
print(data, end = '\n\n')
# 행으로 쌓기
print(np.vstack((data, data, data)), end='\n\n')
# 열로 쌓기
print(np.hstack((data, data)))
3. np.concatenate()
# 넘파이 어레이끼리 합치기
a = np.arange(3)
b = np.arange(4)
np.concatenate((a,b))
4. np.append()
# 넘파이 어레이끼리 합치기2
np.append(a, [3,4,5]) # array([0, 1, 2, 3, 4, 5])
5. np.resize()
np.resize(b, (2,3))
6. np.sort()
# 정렬"
data = [[2,3,1], [9,8,7]]
np.sort(data)
Numpy 수학 연산
1. np.sort() & np.log2() & np.log10()
# 정렬
data = [[2,3,1], [9,8,7]]
np.sort(data)
2. Numpy 연산
리스트는 뺄셈이 불가능하다. 리스트에서의 곱셈의 경우 [2, 3, 2, 3]으로 리스트 자체가 두 번씩 출력된다.
# 숫자 하나에 관련한 연산
data = np.array([2,3])
print(data*2) # [4 6]
print(data-1) # [1,2]
3. np.add() & np.subtract() & np.multiply() & np.divide()
a = np.array([1,2,3])
b = np.array([2,4,6])
# 각 어레이끼리의 연산
# 모든 연산을 각자의 위치에 맞게 된다. -> 리스트도 마찬가지
print("np.add(a,b): ", np.add(a,b), end='\n\n')
print("np.subtract(a,b): ",np.subtract(b,a), end='\n\n')
print("np.multiply(a,b): ",np.multiply(a,b), end='\n\n')
print("np.divide(a,b): ",np.divide(b,a), end='\n\n')
4. np.mean() & np.std() & np.sum() & np.var()
data = np.arange(0,10)
print("np.mean(data): ", np.mean(data), end='\n\n')
print("np.std(data): ", np.std(data), end='\n\n')
print("np.sum(data): ", np.sum(data), end='\n\n')
print("np.var(data): ", np.var(data), end='\n\n')
5. np.prod() & np.argmin() & np.argmax() & np.all() & np.any()
# 모든 값의 곱
print(np.prod(data))
# 다차원 배열의 경우에 차원에 따라 가장 큰 값의 인덱스들을 반환해주는 함수
print(np.argmin(data), np.argmax(data))
# 배열의 모든 원소가 참인가
print(np.all(data))
# 배열에서 1개 이상의 원소가 참인가
print(np.any(data))
Logical Expression
1. np.where() & np.choose() & np.nonzero()
data = np.linspace(0,16,5)
print("{Data set}: ", data, end='\n\n')
print("np.where(): ", np.where(data<5), end='\n\n')
print("np.where(condition, x, y): ", np.where(data<5, data, data*2), end='\n\n')
print("np.choose(): ",np.choose(2,data), end='\n\n')
print("np.nonzero(): ",np.nonzero(data), end='\n\n')
np.select(condition_list, choice_list, default=0)
condition_list와 choice_list에 조건과 데이터가 두 개씩 들어있다면 각 위치에 맞게 데이터와 조건이 적용된다.
2. np.select() & np.logical_and() & np.logical_or() & np.logical_not()
data = np.linspace(0,16,5)
print("{Data set}: ", data, end='\n\n')
print("np.select(): ",np.select([data<2, data>=2],[data-1,data*2]), end='\n\n')
print("np.logical_and(): ",np.logical_and(data>1, data<10), end='\n\n')
print("np.logical_or(): ",np.logical_or(data<1, data>15), end='\n\n')
print("np.logical_not(): ",np.logical_not(data>5), end='\n\n')
'python' 카테고리의 다른 글
[python] 내장 그래프 2 (boxplot, barplot) (0) | 2021.07.26 |
---|---|
[python] 내장 그래프 1 (line, scatter) (0) | 2021.07.22 |
[python] 문자열 포맷팅 (0) | 2021.07.01 |
[python] 문자열 나누기, split() (0) | 2021.06.30 |
[python] 변수 변환 (0) | 2021.06.17 |