일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- #함수 #키워드 #조인 #서브쿼리
- #자바 #스윙관련 함수 #API보고 정리했음
- #자바 #오라클 #JDBC
- #48일차 #한 내용 #요약
- #함수 #VIEW #시퀀스 #INDEX
- #자바 #입출력
- #웹 #정의 #5대 브라우저 #
- #StringBuffer #자바 #
- #자바 #파일 #함수
- #돔 트리 #form 태그 #이스케이프문자 #시작태그 #form태그
- #오라클 #자바 #연동
- #Web #웹 #jsp #servlet
- #자바 #입출력 #함수
- #웹 #HTTP 프로토콜
- #HTML4.01또는 5의 차이 #parsing #웹브라우저 #form 태그 #태그 속성 #id #name
- #오라클 #11g #테이블
- #오라클 #계정 생성 #테이블 #생성 #조회 #추가
- #스윙 #함수 #Swing
- #프로그래밍 기초
- #자바 #오라클 #연동
- #웹 #중요한 것
- #자바
- #오라클 #함수 #MAX() #MIN() #LPAD() #SUBSTR() #TO_CHAR() #복사 #지우기 #수정
- #스프링 프레임 워크 #인코딩 #컨텍스트 #환경설정
- #BigDecimal
- #제약 조건 #함수 #컬럼 변경 #테이블 변경& 삭제
- #오라클 #용어 정리 #데이터 타입 #비교 연산자 #논리 연산자 #SELECT 문
- #jdbc #자바
- #Ajax #EL #JSTL
- #리뷰 #CSS #선택자
- Today
- Total
IT journey
Python- 리스트, 튜플/ 배열 1편 본문
직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요 :)
※ 도움이 될 만한 포스팅
참고로, 최근 포스팅 순서대로 정리해두었습니다.
Python - 내장함수 2편과 이터레이터,제너레이터,코루틴,정규표현식
Python - 모듈(외장함수) 2편(feat.파일 입출력과 추상클래스...)
1. 리스트, 튜플
(1) 1차원 리스트와 1차원 튜플
Python-자료형(리스트,튜플) 에서 다루었으니 참고 부탁 드립니다.
Python-자료형(리스트,튜플)
직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요:) 리스트 정의 여러 개의 데이터를 한 번에 보관할 수 있는 자료형을 '리스트'라고 합니다. 빈 리스트를 만드는 방법 list1 = [] #리
step-journey.tistory.com
(2) 2차원 리스트와 2차원 튜플
○ 2차원 리스트
- 기본형태는 리스트 = [[값,값],[값,값],[값,값]] 입니다.
- 이 때, 2차원 리스트는 가로 X 세로 형태로 이루어져 있습니다.
- 아래의 예에서 세로는 빨간색 동그라미를 친 부분입니다.
- 아래의 예에서 세로 역시 빨간색 동그라미를 친 부분입니다.
- 1차원 리스트에서 인덱싱할 때 0부터 센다고 했던 것처럼 행과 열 모두 0부터 시작합니다.
- 1차원 리스트처럼 변경도 가능합니다.
- 2차원 리스트 정렬하려면 sorted(*반복가능한 객체, key=정렬함수, reverse=True 또는 False)를 이용하면 됩니다.
- 2차원 리스트를 복사할 때에는 = 이나 copy함수나 deepcopy함수를 씁니다.
변수A=변수B 를 쓰게 되면 변수A에 있는 내용이 하나만 변경되더라도 변수B의 내용도 변경되어있는 모습을 확인할 수 있습니다.
변수 A = 변수B.copy를 쓰게 되면 변수A에 있는 내용이 하나만 변경되더라도 변수B의 내용도 변경되어있는 모습을 확인할 수 있습니다.
변수 A = copy.deepcopy(B)를 쓰게 되면 변수 A가 변경된다하더라도 변수B의 내용은 변경되지 않습니다.
- 아래 코드는 2차원 리스트 설명에 대한 예입니다.
*참고로, 반복가능한 객체(시퀀스 객체)는 리스트+튜플+range+문자열(str)+딕셔너리(사전형)+집합을 말합니다.
a=[[11,2],[5,4],[8,6]]
a[0][0] #0번째 세로 인덱스 0번째 가로 인덱스
a[1][0]
a[2][0]
a[0][1]=10
sorted(a,key=lambda a:a[1]) #안쪽 리스트이 인덱스 1을 기준으로 정렬
#2차원 리스트 복사
b=a
b[0][0]=20
b
a
c=a.copy()
c[0][0]=20
c
a
import copy
d = copy.deepcopy(a)
d[0][0]=20
d
a
*참고로, 3차원 리스트는 높이X세로X가로로 이루어져 있으며 기본 형태는 아래와 같습니다.
리스트 = [[값,값],[값,값],[값,값],[값,값],[값,값],[값,값]]
○ 2차원 튜플
- 기본형태는 두 가지 중 하나 선택해서 하면 됩니다.
① ((값,값),(값,값),(값,값))
② [(값,값),(값,값),(값,값)]
- 2차원 리스트처럼 인덱싱 하면 됩니다.
- 1차원 튜플처럼 변경이 되지 않습니다.
a=[(1,2),(3,4),(5,6)]
a=((1,2),(3,4),(5,6))
a[0][0]
a[1][0]
a[2][0]
2. 배열
○ ndarray는 같은 종류의 데이터를 담는 자료형으로, 다차원 배열 객체입니다.
이 배열을 쓰기 위해서는 numpy라는 *모듈을 불러와야 합니다.
참고로, numpy라는 모듈은 고성능 과학계산을 위한 데이터 분석 패키지로 모듈입니다.
*자료형에 대해 알고 싶으시다면, 아래 나와있는 포스팅을 참고해주시면 됩니다.
(1) Python - 자료형 (숫자형,문자열,불린형)
Python - 자료형 (숫자형,문자열,불린형)
직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요:) 형변환 데이터의 형태를 변환합니다. str(데이터) : 문자열로 변환합니다. int(데이터) : 정수로 변환합니다. float(데이터) : 실
step-journey.tistory.com
Python-자료형(리스트,튜플)
직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요:) 리스트 정의 여러 개의 데이터를 한 번에 보관할 수 있는 자료형을 '리스트'라고 합니다. 빈 리스트를 만드는 방법 list1 = [] #리
step-journey.tistory.com
Python-자료형(사전형,집합)
직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요:) 딕셔너리(사전형) 빈 딕셔너리 만들기 dic={} #key:value 가 없는 딕셔너리 기본적인 딕셔너리 모습 {Key1:Value1, Key2:Value2, Key3:Value3,..
step-journey.tistory.com
numpy의 자료형은 bool, int, float, complex(복소수), object(객체) 가 있습니다.
*모듈을 불러오는 방법에 대해 알고 싶으시다면 아래에 있는 포스팅을 참고해주시면 됩니다.
Python - 모듈(외장함수) 1편
직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요:) 모듈(외장함수) 정의 함수나 변수 또는 클래스들을 모아 놓은 파일을 말합니다. 쉽게 말해, 다른 파이썬 프로그램에서 불러서
step-journey.tistory.com
○ 배열 관련 함수
▷ array()
▷ arange().reshape()
▷ ndim 은 배열의 차원(rank)을 알아보는 함수입니다.
▷ shape 은 각 차원의 크기를 튜플로 표시한 것으로 (행,열) 순으로 나옵니다.
▷ zeros() 은 0이 들어있는 배열을 생성합니다.
▷ ones() 은 1이 들어있는 배열을 생성합니다.
▷ full() 은 모든 값이 특정 상수인 배열을 생성합니다.
▷ eye() 은 단위 행렬을 생성합니다.
▷ dtype() 은 배열에 저장된 자료를 알려주는 객체입니다.
▷ itemsize() 은 배열의 각 요소의 바이트에서의 사이즈로입니다.
▷ 1차원 배열에 대한 예에 대한 코드가 아래에 나와 있습니다.
import numpy as np
a = np.array([10,20,30])
type(a)
a.shape #배열의 크기
a.ndim
a.dtype
a.dtype.name
a.itemsize
위 코드에서 1차원 배열의 예를 그림으로 나타낸 것이 바로 아래 그림입니다.
▷ 2차원 배열에 대한 예에 대한 코드가 아래에 나와있습니다.
import numpy as np
b = np.array([[10,20,30],[40,50,60]])
b.shape #2행 3열
type(b)
b.ndim
b.dtype
b.dtype.name
b.itemsize
위 코드에서 2차원 배열의 예를 그림으로 나타낸 것이 바로 아래 그림입니다.
▷ 배열 관련 함수에 대한 예에 대한 코드가 아래에 나와있습니다.
import numpy as np
x = np.arange(20).reshape(5,4) #5행 4열
x.ndim
x.shape
x.dtype
x.itemsize
z = np.zeros((5,4)) #5행 4열 전부를 0으로 채움
o = np.ones((5,4)) #5행 4열 전부를 1로 채움
f = np.full((5,4),2) #5행 4열 전부를 입력한 순서로 채움
e = np.eye(5) #단위행렬
참고로, arnage() 함수에 대해 알아보겠습니다. 이 함수는 range와 사용법이 같습니다.
그러니, Python-자료형(리스트,튜플) 글에서 range 함수를 참고해주시길 부탁드립니다.
Python-자료형(리스트,튜플)
직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요:) 리스트 정의 여러 개의 데이터를 한 번에 보관할 수 있는 자료형을 '리스트'라고 합니다. 빈 리스트를 만드는 방법 list1 = [] #리
step-journey.tistory.com
○ 배열 인덱싱(팬시(fancy) 인덱싱), 배열 슬라이싱
▷ 파이썬 리스트와 유사하게 배열도 인덱싱과 슬라이싱을 합니다.
▷ 인덱싱을 통해 행렬의 각 행에서 하나의 요소를 선택할 수 있습니다.
▷ 인덱싱이나 슬라이싱 된 배열을 수정하면 원본 배열 역시 수정됩니다.
▷ 예 1
import numpy as np
x = np.arange(20).reshape(5,4)
x
x[4,3]=20
y=x[:2,:3]
y
x[:1]=20
z=x[:1]
z
▷ 예 2
import numpy as np
x=np.array([[1,2],[3,4],[5,6]])
x
x[[0,1,2],[0,1,0]]
참고로, x[[0,1,2],[0,1,0]] 의 의미에 대해 알아보겠습니다.
이에 대한 설명은 아래 그림에 나온 색깔별로 말씀드리겠습니다.
빨간색은 0행 0열, 파랑색은 1행 1열, 노란색은 2행 0열을 의미합니다.
▷ 예 3
import numpy as np
a=np.array([10,20,30,40,50,60,70,80,90])
index=np.array([0,0,1,1,2,2,2])
a[index]
x=np.array([[10,20],[30,40],[50,60]])
x[[2,0,1],:] #2행,0행,1행 순서대로 나옵니다.
b=np.array([0,1,3,2,6])
index=np.array([True,False,False,True,True])
b[index] #True인 것만 반환합니다.
b[x%3==0]
참고로, a[index]는 무엇이 나올지 생각해보겠습니다.
이에 대한 설명은 색깔별로 알아보겠습니다.
빨간색 10은 인덱스로 표현하면 무엇이 될까요? Python-자료형(리스트,튜플) 글을 보고 숙지하신 분들이라면 추측이 가능하실 꺼라 봅니다. 이것은 바로 a[0]으로 표현할 수 있습니다.
그와 마찬가지로 파란색 20은 a[1]으로, 노란색 30은 a[2] 으로 표현할 수 있습니다.
그러므로 결과값은 array([10, 10, 20, 20, 30, 30, 30])이 나오게 됩니다.
○ 배열 연산
- 기본적인 수학함수, 연산자, numpy 함수 모듈을 통해 배열의 각 요소별로 연산합니다.
#배열의 각 요소 연산(+,-,/,*,%)이 가능합니다.
np.arange(4)+1 #배열의 각 요소에 1을 더해줍니다
import numpy as np
a=np.array([[5,6],[7,8]],dtype=np.float64)
b=np.array([[10,11],[20,30]],dtype=np.float64)
a+b #np.add(a,b)
a-b #np.subtract(a,b)
a*b #np.multiply(a,b)
a/b #np.divide(a,b)
np.sqrt(a) #각 요소들을 루트 씌웁니다.
10*a
10*a+b
#각 요소별로 6인지 아닌지 판별해줍니다.
a == 6
#각 요소별로 6이상했는지 아닌지 판별해줍니다.
a>=6
#a의 각 요소별로 6초과이고 b의 각 요소별로 초과한 것은 True로 아니면 False로 반환해서 보여줍니다.
(a>6)&(b>20)
*참고로, &는 and 연산자로, 논리연산자입니다. 논리연산자에 대한 글을 보고 싶으시다면
Python-자료형(리스트,튜플) 글을 참조해주시길 부탁드립니다.
Python-자료형(리스트,튜플)
직접 내용 정리하고 만든 예이니 퍼가실 때는 출처를 남겨주세요:) 리스트 정의 여러 개의 데이터를 한 번에 보관할 수 있는 자료형을 '리스트'라고 합니다. 빈 리스트를 만드는 방법 list1 = [] #리
step-journey.tistory.com
'개인공부공간 > Python' 카테고리의 다른 글
Python-배열 3편 (18) | 2021.06.18 |
---|---|
Python-배열 2편 (16) | 2021.06.17 |
Python - 내장함수 2편과 이터레이터,제너레이터,코루틴,정규표현식 (10) | 2021.06.01 |
Python - 모듈(외장함수) 2편(feat.파일 입출력과 추상클래스...) (18) | 2021.05.31 |
Python - 설치없이 이용하기,실행, 사용법 (12) | 2021.05.30 |