일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- #프로그래밍 기초
- #리뷰 #CSS #선택자
- #Ajax #EL #JSTL
- #자바 #오라클 #연동
- #오라클 #함수 #MAX() #MIN() #LPAD() #SUBSTR() #TO_CHAR() #복사 #지우기 #수정
- #48일차 #한 내용 #요약
- #자바 #입출력 #함수
- #Web #웹 #jsp #servlet
- #오라클 #11g #테이블
- #웹 #정의 #5대 브라우저 #
- #자바 #오라클 #JDBC
- #자바 #입출력
- #오라클 #자바 #연동
- #HTML4.01또는 5의 차이 #parsing #웹브라우저 #form 태그 #태그 속성 #id #name
- #함수 #키워드 #조인 #서브쿼리
- #BigDecimal
- #웹 #중요한 것
- #jdbc #자바
- #돔 트리 #form 태그 #이스케이프문자 #시작태그 #form태그
- #제약 조건 #함수 #컬럼 변경 #테이블 변경& 삭제
- #오라클 #계정 생성 #테이블 #생성 #조회 #추가
- #스프링 프레임 워크 #인코딩 #컨텍스트 #환경설정
- #StringBuffer #자바 #
- #오라클 #용어 정리 #데이터 타입 #비교 연산자 #논리 연산자 #SELECT 문
- #자바
- #스윙 #함수 #Swing
- #자바 #파일 #함수
- #웹 #HTTP 프로토콜
- #자바 #스윙관련 함수 #API보고 정리했음
- #함수 #VIEW #시퀀스 #INDEX
- Today
- Total
IT journey
Python-배열 3편 본문
직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :)
※ 도움이 될 만한 포스팅
참고로, 최근 포스팅 순서대로 정리해두었습니다.
Python - 내장함수 2편과 이터레이터,제너레이터,코루틴,정규표현식
Python - 모듈(외장함수) 2편(feat.파일 입출력과 추상클래스...)
배열 연결(concatenate)
(1) hstack
이때 h는 행을 말하며, 행의 수가 같은 두 개 이상의 배열을 옆으로 연결하여 열의 수가 더 많은 배열을 만듭니다. 또한 연결할 배열은 하나의 리스트에 담아야 합니다.
(2) vstack
이때 v는 열을 말하며, 열의 수가 같은 두 개 이상의 배열을 위, 아래로 연결하여 행의 수가 더 많은 배열을 만듭니다. 또한 연결할 배열은 하나의 리스트에 담아야 합니다.
(3) dstack
이 때 d는 깊이를 말하며, 행과 열이 같은 두 개 이상의 배열을 깊이 방향으로 배열을 합칩니다.
(4) stack
dstack의 확장 버전으로, 배열들의 크기가 모두 같아야 합니다. 인수로 axis를 사용할 수 있으며, 기본 값(디폴트)값은 axis=0입니다.
(5) r_ 메소드
hstack과 비슷한 명령으로, 배열을 좌우로 연결합니다. 인덱싱처럼 대괄호([])을 이용합니다.
참고로, r_메소드와 같은 특수 메소드를 인덱서(indexer)라고 합니다.
(6) c_메소드
배열의 차원을 증가시킨 후 좌우로 연결합니다.
1차원 배열을 연결하게 되는 예를 생각해보게 되면 2차원 배열이 된다는 것을 알 수 있습니다.
(7) tile
동일한 배열을 반복해서 연결할 때 사용합니다.
import numpy as np
a = np.array([[70,80],[110,120]])
b = np.array([[1,2,3],[4,5,6]])
np.hstack([a,b])
c = np.array([[10,20,30]])
np.vstack([b,c])
d = np.array([[10,11,12],[13,14,15]])
np.dstack([b,d])
np.dstack([b,d]).shape
np.stack([b,d],axis=0) #깊이(면)
np.stack([b,d],axis=1) #행
np.stack([b,d],axis=2) #열
np.column_stack([b,d]) #열로 추가
np.r_[b,d]
np.c_[b,d]
np.tile(a,2)
np.tile(a,(2,4))
차원 축소 연산(dimension reduction)
○ 정의
2차원 배열인 행렬의 하나의 행에 있는 원소들을 하나의 데이터 집합으로 보았을 때, 그 집합의 *연산을 구하면 각 행에 대한 하나의 숫자가 나오게 되는데 이러한 연산을 차원 축소 연산이라고 합니다.
○ 2차원 이상의 배열일 경우에는 axis 인수를 넣어 원하는 면,행,열의 차원 축소연산을 할 수 있습니다.
2차원 배열일 경우에는 axis=0이 열이고, axis=1은 행입니다.
3차원 배열일 경우에는 axis=0이 면, axis=1이 행, axis=2가 열입니다.
*참고로, 연산 관련 메소드는 아래와 같습니다.
max | 최대 | argmax | 최대값의 위치 |
min | 최소 | argmin | 최소값의 위치 |
sum | 합 | mean | 평균 |
median | 중앙값 | var | 분산 |
std | 표준편차 | ||
all | 배열의 모든 원소가 True인지 평가하는 메소드 | any | 배열의 1개 이상의 원소가 True인지 평가하는 메소드 |
○ 예
import numpy as np
a = np.array([13,4,110,70])
np.min(a)
np.argmin(a)
np.max(a)
np.argmax(a)
np.sum(a)
np.mean(a)
np.median(a)
np.var(a)
np.std(a)
np.all([True,False,True,False])
np.any([True,False,True,False])
#axis 인수를 적용한 예
print(b.min(axis=0)) #열 중에 최소값 반환
print(b.min(axis=1)) #행 중에 최소값 반환
*참고로, 차원 축소 연산 관련 메소드에서 간략히 알아본 통계 함수(max,min,sum,median,std,var,mean,std)에 대한 설명을 덧붙이겠습니다.
Numpy 기술 통계(descriptive statistics)
▶ 데이터 개수를 알아보는 함수 -> len(x)
▶ (샘플) 평균을 알아보는 함수 -> mean(x)
이에 대한 수학 수식은 아래와 같습니다.
▶ 분산을 알아보는 함수 -> var(x)
데이터와 샘플 평균 간의 거리의 제곱의 평균입니다. 이 값이 작다면 데이터가 모여있다는 것을 알 수 있고, 크다면 데이터가 흩어져 있다는 것을 알 수 있습니다.
이에 대한 수학 수식은 아래와 같습니다.
▶ 표준편차를 알아보는 함수 -> std(x)
이에 대한 수학 수식은 아래와 같습니다.
▶ 최댓값을 알아보는 함수 -> max(x)
▶ 최소값을 알아보는 함수 -> min(x)
▶ 중앙값을 알아보는 함수 -> median(x)
데이터를 크기대로 정렬 했을 때 가장 가운데에 있는 수를 의미합니다.
데이터 개수가 짝수일때는 중앙의 두 수의 평균을 사용합니다.
▶ 사분위수(Quartile)를 알아보는 함수
-> 최소값 percentile(x,0)
-> 1사분위 수 percentile(x,25)
-> 2사분위 수 percentile(x,50)
-> 3사분위 수 percentile(x,75)
-> 최대값 percentile(x,100)
데이터를 크기대로 정렬하였을 때 1/4, 2/4, 3/4 위치에 있는 수를 말하며, 이를 1분위수, 2분위수, 3분위 수라 말합니다. 이 방법 외에도 위치를 1/100 단위로 나눈 백분위 수를 사용하기도 합니다. 이 때 1분위 수는 25%, 2분위 수는 50%, 3분위 수는 75% 입니다.
정렬
○ 2차원 이상의 배열일 경우에는 axis 인수를 넣어 원하는 면,행,열의 정렬을 할 수 있습니다.
2차원 배열일 경우에는 axis=0이 열이고, axis=1은 행입니다.
3차원 배열일 경우에는 axis=0이 면, axis=1이 행, axis=2가 열입니다.
○ sort는 자료를 정렬할 때 쓰고, argsort는 순서를 알고 싶을 때 씁니다.
○ 예
import numpy as np
x=np.array([[5,6,2,1],[4,8,9,1],[20,8,10,1]]) #2차원 배열
np.sort(x)
np.sort(x,axis=0)
np.sort(x,axis=1)
np.argsort(x)
'개인공부공간 > Python' 카테고리의 다른 글
Python-모듈 random, 데이터 수를 세는 함수 (6) | 2021.06.22 |
---|---|
Python-배열 4편 (16) | 2021.06.21 |
Python-배열 2편 (16) | 2021.06.17 |
Python- 리스트, 튜플/ 배열 1편 (16) | 2021.06.16 |
Python - 내장함수 2편과 이터레이터,제너레이터,코루틴,정규표현식 (10) | 2021.06.01 |