# 파일 읽기
f = open(file_name, mode)
*file : 파일의 경로
*mode : 옵션 => 혼합해서 사용 가능
mode | 의미 |
r | 읽기 모드로 파일 열기 (default). 모드를 지정하지 않으면 기본적으로 읽기 모드로 지정된다. |
w | 쓰기 모드로 파일 열기. 같은 이름의 파일이 있으면 기존 내용은 모두 삭제 되며, 파일이 없을 경우 새로 생성된다. |
x | 쓰기 모드로 파일 열기. 같은 이름의 파일이 있을 경우 오류가 발생한다. |
a | 추가 모드로 파일 열기. 같은 이름의 파일이 없으면 w와 기능이 같다. |
b | 바이너리 파일 모드로 열기 |
t | 텍스트 파일 모드로 파일 열기(default) 지정하지 않으면 기본적으로 텍스트 모드로 지정된다. |
[Example]
- 현재 경로 안에 studentlist.txt 파일이 존재하므로, 따로 경로가 필요하지 않습니다.
- readline() 함수는 파일의 문자열 한 줄을 읽는 함수입니다. (전체를 읽으려면 read() 함수 사용)
- readlines() 함수는 파일 전체의 모든 줄을 읽어 한 줄씩을 요소로 갖는 리스트 타입으로 반환합니다.
- 위 예시는 파일을 열어 리스트에 한 줄씩 저장한 다음, 길이를 재는 len() 함수를 이용해 파일이 총 몇 줄로 구성되어 있는지 출력합니다.
# 문자열 다루기
1 ) 문자열 분리
str.split(sep, maxsplit)
*sep : 구분자
*maxsplit : 분할의 최대 수행 수
[Example]
- seq이 지정되지 않거나 None이면, 연속된 공백 문자는 단일한 구분자로 간주합니다. (에스프레소와 아메리카노 사이에 두 번의 공백이 있음에도 하나의 구분자로 간주하여 공백이 리스트에 포함되지 않습니다.)
- 위 예시 마지막 줄은 maxsplit을 2로 지정하여 공백으로 2번의 분할만 수행합니다.
2 ) 문자열 합치기
2-1 ) 더하기 연산자(+)
[Example]
+(더하기) 연산자를 이용하여 문자열을 연결할 수 있습니다.
2-2 ) join() 함수
str.join(iterable)
*iterable : iterable의 문자열들을 이어 붙인 문자열을 반환
[Example]
address_list 리스트에 있는 요소들을 " "와 함께 join 합니다.
3 ) 문자열 바꾸기
str.replace(old, new [, count])
*old : 대체될 문자열
*new : 대체할 문자열
*count(선택) : 앞에서부터 count개만 치환
[Example]
- 문자열 속 'Python'을 찾아 'IPython'로 대체
- 문자열 속 'Python'을 2개까지만 'IPython'으로 대체
4 ) 문자열 구성 확인
4-1 ) isalpha()
문자열 내의 모든 문자가 알파벳이고, 적어도 하나의 문자가 존재하는 경우 True 반환, 그렇지 않으면 False를 반환합니다.
[Example]
- 'Python'은 모두 문자로 이루어져 있으므로, True 반환
- 'Ver.3.x'에 숫자 3이 포함되어 있으므로, False 반환
4-2 ) isdigit()
문자열 내의 모든 문자가 숫자이고, 적어도 하나의 문자가 존재하는 경우 True 반환, 그렇지 않으면 False를 반환합니다.
[Example]
- '12345'는 모두 숫자로 이루어져 있으므로, True 반환
- '12345 abc'에 문자 abc가 포함되어 있으므로, False 반환
4-3 ) isalnum()
문자열 내의 모든 문자가 알파벳과 숫자이고, 적어도 하나의 문자가 존재하는 경우 True 반환, 그렇지 않으면 False를 반환합니다.
[Example]
- 'abc12345'가 숫자와 알파벳으로 이루어져 있으므로, True 반환
- ' 12345abc'에 ' '(공백)이 포함되어 있으므로, False 반환
4-4 ) isupper()
문자열 내의 모든 케이스 문자가 대문자로 이루어져 있는 경우 True 반환, 그렇지 않으면 False 반환
[Example]
- PYTHON'은 모두 대문자이므로 True 반환
- 'Python'은 대문자+소문자로 이루어져 있으므로, False 반환
4-5 ) islower()
문자열 내의 모든 케이스 문자가 소문자로 이루어져 있는 경우 True 반환, 그렇지 않으면 False 반환
[Example]
- 'python'은 모두 소문자이므로 True 반환
- 'Python'은 대문자+소문자로 이루어져있으므로, False 반환
#Numpy
행렬이나 일반적으로 대규모 다차원 배열을 쉽게 처리할 수 있도록 지원하는 파이썬의 라이브러리
ndarray : class, 같은 type의 값들로 구성
axis = 차원
속성
- ndarray.ndim : 차원 수
- ndarray.shape : 데이터 모양
- ndarray.size : 값 개수
- ndarray.dtype : 값의 type
- ndarray.itemsize : 각 값의 크기(byte)
[Example]
1 ) 생성
- array() 함수에 리스트를 넣어 생성
- 다차원 array 생성 (arrange(15): 0-14까지 reshape(5,3): 5행 3열 배열 생성)
- zeros((3,4)) : 3행 4열 배열을 0으로 채움
- ones((3,4)) : 3행 4열 배열을 1로 채움
- full((3,4),10) : 3행 4열 배열을 10(사용자 지정)으로 채움
- eye(3) : 3행 3열 배열의 대각선은 1, 나머지는 0으로 채움
- arange(10) : 0-9까지의 배열 생성
2 ) 연산
- 사칙 연산: 각 element와 스칼라 연산
- 벡터*벡터는 같은 위치의 element끼리 연산
- 벡터의 곱은 @
2-1 ) axis(차원)에 따른 연산
sum(axis=0) : 첫 번째 차원으로 합
sum(axis=1): 두 번째 차원으로 합
[Example]
#Pandas
행과 열로 이루어진 데이터 객체를 만들어 보다 편리하게 데이터를 처리할 수 있는 데이터 분석 라이브러리
차원 | 이름 | 설명 |
1차원 | Series | 균일한 유형의 배열로 표시된 1차원 데이터 |
2차원 | DataFrame | 잠재적으로나 이질적으로 유형이 지정된 열이 있는 크기가 가변적인 테이블 형식의 2차원 데이터 |
DataFrame
1 ) dictionary로 생성
2) numpy array이용
3 ) series를 dataframe으로 만들기