728x90

PYTHON 17

[Python] 파이썬 기초 14: Pandas (3, 4)

DataFrame의 데이터에 접근하는 일반적 방법💡 dataframe.loc[, ]student_record_file_name = "student_records.csv"scores = pd.read_csv(student_record_file_name)scores.head()scores['시험1'] # col label 지정scores[['시험1', '시험2']] # 여러 개 접근: cols를 list로 만든 후 접근scores.loc[3] # 특정 행에 접근. (한 줄)scores.loc[[3, 5]] # 여러 행에 동시접근(3번, 5번): idx를 list로 만들어# df에서 특정한 원소에 접근scores.loc[3, '시험1'] # 3번 행의 '시험1'에 접근 scores.loc[[3, 5]], [..

[Python] 파이썬 기초 13: Pandas (1, 2)

Pandas의 핵심 data 구조series: 동일 유형 데이터를 가질 수 있는 1차원 라벨이 붙은 배열(labeled array), 크기 변경 불가능DataFrame: 이형 데이터 column 가질 수 있는 일반적인 2차원 라벨이 붙은 구조, 크기 변경 가능Pandas Series Object모든 데이터 유형 보유할 수 있는 1차원 라벨이 붙은 배열(labeled array)label들을 집합적으로 index라 호칭0개 이상 동일 유형 data 수용series 생성자로 사용 가능: parameter: scolar, numpy ndarray, python list, python dictPandas Series 객체생성 💡 Pandas.Series(data=None, index=Non, dtype=Non..

[Python] 파이썬 기초 12: Matplotlib

Matplotlibpython, numpy를 위한 plotting library사용법범용 GUI toolkits를 사용하는 applications에 내장가능한 객체지향 APIMatlab과 매우 닮은 절차적 Pylab interface: 여태 이 방법으로 사용Matplotlib.pyplotmatplotlib가 MATLAB처럼 작동하도록 하는 명령 스타일 함수들의 모음한 문장 명령 추가할 때마다 figure에 변화 발생figure: 그래프 그리는 데 필요한 모든 요소들을 포함하는 최상위 containerstate 기반 APILine Plotmatplot.pyplot.plot()2차원 평면 그래프에서 다음 점들을 선분으로 연결해 그래프를 그리는 함수$P0(x0, y0), P1(x1, y1), ..., Pn-1..

[Python] 파이썬 기초 11: Numpy(5, 6)

Numpy 다차원 배열의 Indexing기본 indexing고급 indexingfield access: 구조화 배열에 사용 (설명 생략)기본 indexing & slicing0 ≤ ni ≤ dii: axis 번호(in 다차원 배열)ni: axis i의 indexdiL axis i의 원소의 개수ni 기본 slicing 문법: start : end : stop a = np.arnage(48).reshape(8, 6)a[(6, 3)] # 39(tuple로 원소 접근)a[6, 3] # 39(소괄호 생략 가능)a[6][3] # 39(인덱싱 사용 가능)a[(-2, -3)] # 39(음수 index: 뒤에서부터 n번째)a[:5,2] # array([2, 8, 14, 20, 26])a[:5:2,2] # array([2..

[Python] 파이썬 기초 10: Numpy(3, 4)

Numpy 다차원 배열 변수의 Assignment, Shallow copy, Deep copyAssignmentimport numpy as npx = np.arange(5)y = xprint(id(x), id(y)) # 같은 값 출력 - 같은 객체 참조. 같은 원소에 binding 되어있음.print("x=", x) # [0 1 2 3 4]print("y=", y) # [0 1 2 3 4]x[3] = 10print("x=", x) # [0 1 2 10 4]print("y=", y) # [0 1 2 10 4]Numpy 다차원 배열 변수의 view는 shallow copyx = np.arange(5)print("x=", x) # [0 1 2 3 4]y = x[1:4] # index slicingprint("..

[Python] 파이썬 기초 9: Numpy(1, 2)

개요수학, 과학, 공학, 데이터과학 응용 분야에서 python에서 사용 가능한 open source libraryC/C++ Fortran과 통합이 쉬움데이터 구조ndarray class: array class라고 부르기도 함동일한 데이터형 원소들(주로 숫자형)의 다차원 배열indexing: 정수들의 tuple로 index 표현broadcasting다양한 수치 연산 도구다차원 배열에 적용할 수 있는 벡터화 함수선형 대수, 푸리에 변환, 콘볼루션, 통계 라이브러리 등Numpy 장점다차원 배열 또는 행렬 연산의 편리함우수한 메모리 효율(list, tuple에 비해) // list객체가 약 130배 정도 늦음빠른 처리속도 💡 np.array() # 다차원 배열 생성Numpy 다차원 배열과 list 객체의 구조..

[Python] 파이썬 기초 8: 함수(3, 4)

함수(3)재귀함수(Recursive Function)정의: 자기 자신을 호출하는 함수.for loop, while loop으로는 해결할 수 없는 문제반복 작업을 깔끔하게 해석 가능비선형 구조(tree)에 대한 자료를 다룰 때Factorial 함수자연수 n의 factorial은 n보다 작거나 같은 모든 자연수의 곱.n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1 = n * (n - 1)!0! = 1$factorial(n) = 1 (n = 0), otherwise : n *factorial(n-1)$# factorial formed by for-loopdef factorial(n): assert (n>=0) fact = 1 for i in range(1, n+1): fac..

[Python] 파이썬 기초 7: 함수(1, 2)

함수(1)함수 개요함수는 추상화(abstraction)의 기본 방법추상화: 사용자에게 애플리케이션의 내부 구현을 숨기고 사용법에만 집중하게 하는 과정전자레인지 쓰면서 내부 기능은 알 필요 없으니까같은 동작이 여러 번 필요한 경우, 다른 곳에 함수 블록 만들어놓고 계속 쓰기만 하면 되니까함수는 호출될 때만 실행되는 코드들의 블록함수의 매개 변수(parameters)를 이용해 데이터를 함수에 전달할 수 있음매개 변수는 0개 이상함수는 데이터를 반환(return)할 수 있음함수 정의 💡 def function_name(parameter list):"""docstring"""statement(s)대부분의 함수는 return 문으로 끝나지만, 때로는 없을 수도 있음. 이 경우, 반환값이 없는 게 아니고 None..

[Python] 파이썬 기초 6: Set / Frozen Set 자료형

Set 💡 set_name = {element, element, ... }Set 특징순서가 없는(unordered) 데이터 모음. idx 없음//non-sequence type data, tuple/list와 다름.sequence type data: string, range, tuple, list중복된 원소 없음: kinda like 'key' of dictionaryIterable > for loop 내 set 사용 가능set 자체는 mutable이지만 원소는 immutablehash table 사용, 원소는 immutablelist에 비해 처리 속도 빠름(list: 동적 배열, set: hash table)Set 생성empty set 생성set_1 = set() print(set_1) # set()..

[Python] 파이썬 기초 5: Dictionary 자료형

container = 다른 객체 포함하는 객체. 항상 container 이해하고 생각하기!Hash 함수python의 모든 객체는 'hashable'data를 hash라는 고정길이 값으로 mapping하는 함수주요 특징같은 data에 대해 늘 같은 결과 제공(same input, same output)빠른 계산 속도데이터 크기와 관계없이 결과는 고정길이 값Hash 값으로부터 원래 데이터 복원 불가능: 비가역 함수hash 함수는 객체를 받아들여 정수를 return정수의 Hash 값64bit system의 경우, [-2^61 + 2, 2^61 - 2] 범위 정수는 hash값이 자신과 같음.범위 벗어나면 자기 자신과 hash값이 다름n = 2 ** 61 # criteriaprint(f"{'n':^24} {'ha..