본문 바로가기

전체 글

(224)
[Python] 알파벳 출력하기 - string 모듈 a부터 z까지의 소문자를 가져오라고 하면 보통 'abcdefg ...."와 같이 손수 알파벳을 입력한다. 파이썬에서는 이런 데이터를 상수(constants)로 정의해놓았다. import string string.ascii_lowercase # 소문자 abcdefghijklmnopqrstuvwxyz string.ascii_uppercase # 대문자 ABCDEFGHIJKLMNOPQRSTUVWXYZ string.ascii_letters #대소문자 모두 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ string.digits # 숫자 0123456789 이 글은 프로그래머스의 파이썬을 파이썬답게 강의를 수강하고 작성하는 글입니다.
[Python] [Str 다루기] 문자열 정렬하기 - ljust, center, rjust 이 글은 프로그래머스의 파이썬을 파이썬답게 강의를 수강하고 작성하는 글입니다. 문자열을 좌측/가운데/우축 정렬할 때 보통 for문을 이용해 기존 string에 공백문자(' ')를 여러 번 붙이는 번거로운 일을 다음과 같이 한다. ### 우측 정렬 예 s = '가나다라' n = 7 answer = '' for i in range(n-len(s)): # 문자열의 앞을 빈 문자열로 채우는 for 문 answer += ' ' answer += s 하지만 파이썬에서는 ljust, center, rjust와 같은 string의 메소드를 사용해 코드를 획기적으로 줄일 수 있다. s = '가나다라' n = 7 s.ljust(n) # 좌측 정렬 s.center(n) # 가운데 정렬 s.rjust(n) # 우측 정렬
[Python] [정수 다루기] n진법으로 표기된 string을 10진법 숫자로 변환하기 이 글은 프로그래머스의 파이썬을 파이썬답게 강의를 수강하고 작성하는 글입니다. 알고리즘 문제에서 자주 등장하는 진법 변환 문제를 해결할 때 보통 for문을 이용해 숫자를 곱해가며 문제를 해결한다. num = '3212' base = 5 answer = 0 for idx, i in enumerate(num[::-1]): answer += int(i) * ( base ** idx ) # base ** idx == pow(base, idx) 하지만 파이썬에서는 파이썬의 int(x, base = 10)함수가 진법 변환을 지원한다. 이 기본적인 함수를 잘 사용하면 코드를 짧게 작성할 수 있고, 또 시간을 절약할 수 있다. (x에는 문자열만 들어갈 수 있다.) num = '3212' base = 5 answer =..
[Python] [정수 다루기] 몫과 나머지 - divmod 이 글은 프로그래머스의 파이썬을 파이썬답게 강의를 수강하고 작성하는 글입니다. 알고리즘 문제를 풀다 보면, 정수를 나눈 몫과 나머지를 구해야 할 때가 있다. 보통(다른 언어에서는) 아래와 같이 몫과 나머지를 따로 구한다. a = 7 b = 5 print(a//b, a%b) # 1 2 (파이썬에서 /연산자는 부동소수점 숫자를 돌려준다. //연산자가 두 수를 나누고 정수를 제외한 나머지를 잘라버린다.) 파이썬에서는 파이썬의 divmod와 unpacking을 이용하면 다음과 같이 코드를 짤 수 있다. a = 7 b = 5 print(*divmod(a, b)) # 1 2 ※ divmod를 사용할 때 주의할 점 무조건 divmod를 사용하는 게 좋은 방법은 아니다. 가독성이나, 팀의 코드 스타일에 따라서, a//..
[python] 상대경로 윈도우는 역슬레시 사용 / 리눅스나 MAC은 그냥 슬래시 사용 os.path.join를 사용하면 OS에 맞게 join을 해준다. 그냥 +를 이용해서 join하지 말고 os.path.join을 사용해야 다른 코드에서도 돌아간다.
[Python] Asterisk 본 글은 BoostCourse에서 '머신러닝을 위한 파이썬' 강의를 듣고 작성한 글입니다. Asterisk(*)는 가변인자로 한번에 여러개의 변수를 넘겨줄 때 유용하다. 예시 def asterisk_test(a, *args): print(a, args) print(type(args)) asterisk_test(1,2,3,4,5,6) #1 (2, 3, 4, 5, 6) # def asterisk_test(a, **kargs): print(a, kargs) print(type(kargs)) asterisk_test(1, b=2, c=3, d=4, e=5, f=6) #1 {'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6} # unpacking (2, 3, 4, 5, 6)이 하나의 tuple..
[머신러닝] Pandas로 데이터 다루기 본 글은 생활코딩의 머신러닝야학 강의를 듣고 작성한 글입니다. 1. 라이브러리 import pandas as pd 2. 파일 읽어오기 데이터 = pd.read_csv(파일경로) 3. 데이터 모양 확인하기 print(데이터.shape) 4. 데이터 칼럼 이름 확인하기 print(데이터.columns) 5. 칼럼 선택해서 독립변수와 종속변수 분리하기 독립 = 데이터[['칼럼명1', '칼럼명2', '칼럼명3']] 종속 = 데이터[['칼럼명4']] 6. 맨 위 4개 관측치 출력하기 print(데이터.head())
[머신러닝] 원핫인코딩(One-hot Encoding) 종속변수가 범주형 데이터인 경우 숫자가 아니므로 수식에 대입할 수 없다. 따라서 범주형 데이터는 수식에 사용할 수 있는 데이터로 바꾸는 과정을 거쳐야 한다. 범주형 데이터를 0 또는 1의 데이터로 바꿔주는 과정을 원핫인코딩이라고 한다. 하나의 단어를 vector의 Index로 인식해서 단어가 존재하면 1, 없으면 0으로 나타낸다. 문서에서 단어가 n개 있다면 n size의 list를 만들어줘서 나타낸다. pandas에서는 pd.get_dummies() 한 줄로 원핫인코딩을 수행할 수 있다. type이 object나 category인 경우에만 원핫인코딩이 가능하다. 숫자인 경우에는 적용되지 않는다. type이 숫자인 경우에는 type을 범주형으로 바꿔줘야한다. NaN : Not available -> 평균..