일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- #Ajax #EL #JSTL
- #자바 #스윙관련 함수 #API보고 정리했음
- #오라클 #11g #테이블
- #자바 #입출력
- #웹 #중요한 것
- #스프링 프레임 워크 #인코딩 #컨텍스트 #환경설정
- #함수 #VIEW #시퀀스 #INDEX
- #프로그래밍 기초
- #오라클 #용어 정리 #데이터 타입 #비교 연산자 #논리 연산자 #SELECT 문
- #StringBuffer #자바 #
- #함수 #키워드 #조인 #서브쿼리
- #스윙 #함수 #Swing
- #자바 #오라클 #JDBC
- #웹 #정의 #5대 브라우저 #
- #돔 트리 #form 태그 #이스케이프문자 #시작태그 #form태그
- #자바 #오라클 #연동
- #자바 #입출력 #함수
- #오라클 #계정 생성 #테이블 #생성 #조회 #추가
- #오라클 #함수 #MAX() #MIN() #LPAD() #SUBSTR() #TO_CHAR() #복사 #지우기 #수정
- #Web #웹 #jsp #servlet
- #리뷰 #CSS #선택자
- #웹 #HTTP 프로토콜
- #오라클 #자바 #연동
- #자바 #파일 #함수
- #BigDecimal
- #jdbc #자바
- #제약 조건 #함수 #컬럼 변경 #테이블 변경& 삭제
- #HTML4.01또는 5의 차이 #parsing #웹브라우저 #form 태그 #태그 속성 #id #name
- #자바
- #48일차 #한 내용 #요약
- Today
- Total
IT journey
Python-배열 4편 본문
직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :)
※ 도움이 될 만한 포스팅
참고로, 최근 포스팅 순서대로 정리해두었습니다.
Python - 내장함수 2편과 이터레이터,제너레이터,코루틴,정규표현식
Python - 모듈(외장함수) 2편(feat.파일 입출력과 추상클래스...)
배열 나누기
1. split
import numpy as np
a=np.arange(24)
a
np.split(a,3)
a1=np.split(a,3)
a1[0]
np.split(a,[3,4])
np.split(a,[3,4,5])
np.array_split(a,[3,4,5])
코드 설명을 그림으로 하고 부족할시 설명을 덧붙여겠습니다.
○ np.split(a,3) 의 의미는 아래 그림과 같이 3등분한 것입니다.
○ np.split(a,[3,4])의 의미는 아래 그림과 같이 나누어집니다.
이 그림에 대한 설명을 간략히 해보자면 3개(0,1,2) 그리고 4번째(3) 그리고 나머지로 나눈 것입니다.
○ np.split(a,[3,4,5])의 의미는 아래 그림과 같이 나누어집니다.
이 그림에 대한 설명을 간략히 해보자면 3개(0,1,2) 그리고 4번째(3), 5번째(4) 그리고 나머지로 나눈 것입니다.
2. dsplit, hsplit, vsplit
import numpy as np
a=np.arange(24).reshape(2,3,4)
np.dsplit(a,2)
np.dsplit(a,[2,3])
b=np.arange(36).reshape(6,6)
np.hsplit(b,2)
np.hsplit(b,[2,6])
np.vsplit(b,2)
np.vsplit(b,[2,3])
코드 설명을 그림으로 하고 부족할시 설명을 덧붙여겠습니다.
○ np.dsplit(a,2) 의 의미는 아래 그림과 같이 2등분한 것입니다.
○ np.dsplit(a,[2,3])의 의미는 아래와 같이 됩니다.
○ np.hsplit(b,2)의 의미는 아래 그림과 같이 2등분한 것입니다.
○ np.hsplit(b,[2,6])의 의미는 아래와 같이 됩니다.
○ np.vsplit(b,2)의 의미는 아래 그림과 같이 2등분한 것입니다.
○ np.vsplit(b,[2,3])의 의미는 아래와 같이 됩니다.
배열 요소 반복·추가·제거
1. 반복하기
import numpy as np
np.repeat(2,3) #2를 3번 반복
ra=np.array([[6,15],[18,60]])
np.repeat(ra,2) #ra의 각 요소를 2번 반복
#ra의 각 요소를 오른쪽으로 2번 반복
np.repeat(ra,2,axis=1) #행
#ra의 각 요소를 아래쪽으로 2번 반복
np.repeat(ra,2,axis=0) #열
2. 제거하기
d = np.array([[10,23,27,4],[24,25,28,29],[30,4,26,1]])
np.delete(d,2) #3번째 요소 제거
np.delete(d,1,0)
np.delete(d,0,1)
np.delete(d,1,1)
○ 코드를 설명해보겠습니다.
※ 참고로, d의 값은 아래와 같습니다.
▶ np.delete(d,2)는 d의 3번째 요소를 제거한다는 의미입니다.
즉 , 27을 제거한다는 의미입니다.
▶ np.delete(d,1,0) 는 2행을 제거한다는 의미입니다.
즉, 24,25,28,29을 제거한다는 의미입니다.
▶ np.delete(d,0,1)는 1열을 제거한다는 의미입니다.
즉, 10,24,30을 제거한다는 의미입니다.
▶ np.delete(d,1,1)는 2열을 제거한다는 의미입니다.
즉, 23,25,4 를 제거한다는 의미입니다.
*행과 열이 헷갈리신다면, R-벡터,행렬 글을 참고해주시길 부탁드립니다.
3. 중복된 값 제거하기
import numpy as np
n=np.array((0,0,0,0,0,15,15,15,0,0,0,0,17,0,0,0,0,23,0,0,23,23,0,0))
n
nu=np.unique(n) #중복되는 것은 하나씩만 출력
nu
a=np.array([[0,0,0,0,0,15,15,15,0,0,0,0,17,0,0,0,0,23,0,0,23,23,0,0]])
au=np.unique(a)
au
au0=np.unique(a,axis=0) #행(중복제거하지 않음)
au0
au1=np.unique(a,axis=1) #열
au1
4. 0 제거하기
import numpy as np
n=np.array((0,0,0,0,0,15,0,0,0,0,0,17,0,0,0,0,23,0,0,0,0,0))
nn=np.trim_zeros(n) #좌우에 있는 0을 제거
nn
fn=np.trim_zeros(n,'f') #앞에 있는 0을 제거
fn
bn=np.trim_zeros(n,'b') #뒤에 있는 0을 제거
bn
5. 추가하기
#insert 방법
#수가 아닌 리스트도 넣을 수 있습니다.
import numpy as np
n=np.array([[1,2],[3,4],[5,6]])
np.insert(n,3,29) #3번째 위치(index)에 29넣기
np.insert(n,3,29,axis=0) #3번째 행을 29로 채우기
np.insert(n,2,29,axis=1) #3번째 열을 29로 채우기
#append 방법
import numpy as np
a=np.array([[2,3,6],[10,11,12]])
np.append(a,[[4,29,35]])
np.append(a,[[4,29,35]],axis=0) #행에 [4,29,35] 추가
배열 크기 조절
import numpy as np
n=np.array([[15,17],[23,21]])
n1=np.resize(n,(1,2)) #1행 2열로 만들기
n1
n2=np.resize(n,(2,4)) #2행 4열로 만들기
n2
n3=np.resize(n,(3,4)) #3행 4열로 만들기
n3
배열 요소의 재정렬
1. flip
import numpy as np
a=np.arange(27).reshape(3,3,3)
a0=np.flip(a,0)
a0
a1=np.flip(a,1)
a1
○ 코드를 설명해보겠습니다.
※ 참고로, a의 값은 아래와 같습니다.
▶ np.flip(a,0)의 코드를 실행하면 아래 그림과 같이 빨간색 박스가 위로 올라갑니다.
▶ np.flip(a,1)의 코드를 실행하면 아래 그림과 같이 빨간색 박스와 초록 박스의 위치가 변경됩니다.
2. fliplr () 는 왼쪽/오른쪽 방향으로 뒤집기를 합니다.
import numpy as np
#대각선 배열을 만들기
a=np.diag([5,8,13])
np.fliplr(a) #왼쪽/오른쪽 방향으로 뒤집기
#diag에 대해 더 자세히 알아보겠습니다.
x=np.arange(16).reshape(4,4)
np.diag(x)
np.diag(x,k=1)
np.diag(x,k=-1)
○ 코드를 설명해보겠습니다.
▶ np.diag(x)는 아래 빨간색으로 표시한 부분의 숫자가 나오고,
np.diag(x,k=1)는 아래 파랑색으로 표시한 부분의 숫자가 나오고,
np.diag(x,k=-1)는 아래 회색으로 표시한 부분의 숫자가 나옵니다.
이를 통해서 기본값은 k=0이라는 것을 알 수 있습니다.
3. fliplud는 배열을 위/아래 방향으로 뒤집기를 합니다.
import numpy as np
#대각선 배열을 만들기
a=np.diag([5,8,13])
np.flipud(a) #위/아래 방향으로 뒤집기
배열 회전
import numpy as np
r=np.array([[9,15],[6,120]])
r1=np.rot90(r,1) #반시계방향으로 90도 회전입니다.
r10=np.rot90(r,-1,(0,1)) #시계방향으로 90도 회전
r11=np.rot90(r,1,(1,0))
r2=np.rot90(r,2) #반시계방향으로 180도 회전입니다.
'개인공부공간 > Python' 카테고리의 다른 글
Python-Matplotlib 패키지 1편 (12) | 2021.06.23 |
---|---|
Python-모듈 random, 데이터 수를 세는 함수 (6) | 2021.06.22 |
Python-배열 3편 (18) | 2021.06.18 |
Python-배열 2편 (16) | 2021.06.17 |
Python- 리스트, 튜플/ 배열 1편 (16) | 2021.06.16 |