목록파이썬/강의 (13)
배우고 느낀 것들
자료구조 스택 : FILO 의 구조 형태 "입구가 한 개" 기존의 List 형태를 통해 쉽게 구현 가능. Push와 Pop의 시간복잡도는 O(1) 큐 : FIFO의 구조. "입구가 양 쪽에" 리스트로 할 경우 Pop은 어차피 맨 마지막이니까 똑같이 O(1). 다만 Insert의 경우 O(N)만큼 걸리게 됨 -> 새로운 구조 필요. "Linked List" : 양쪽으로 자유로운 입출력 by Collection 라이브러리의 deque from collections import deque que = deque[3, 7, 8] que.appendleft(10) #[10, 3, 7, 8] Priority Queue 최소,최대값을 구하기 위한 이진 검색을 하기 위해서는 내부가 정렬되어야 함 -> sorted 하고 ..
Generator 더보기 range 함수처럼 요소를 하나씩 생성해서 반환하는 객체 함수 내부에 yield 를 사용할 시 generator 가 됨. yield 하는 위치에서 값을 반환 다시 값을 요청받게 되면 yield 다음부터 실행 Return 될 경우 반복을 멈춤. 메모리 효율적임. def _range(stop): num = 0 while num < stop: yield num num += 1 for i in _range(5): print(i) 내장함수 Any, All : Iterable 내부에 하나라도 참, 모두 참 아스테리크* 와 언패킹 arr = [[1,2,3], [4,5,6], [7,8,9]] for row in arr: print(row) # [(1,2,3), (4,5,6), (7,8,9)] ..
* := 대입 표현식 , "바다코끼리" : 표현식에 이름을 부여하고, 이후 재사용할 수 있게 만들어줌 a = (1,2,3) n = len(a) if n > 5: a = (1, 2, 3) if (n := len(a)) > 5: 로 한번에 표현 가능 * a += 1은 in place 연산, a = a+1 은 out - place 연산임! 구체적인 건 나중에 list.clear 은 in place list = [] 는 out place * 비트 연산자 더보기 2진법의 첫자리가 1이면 -를 의미 ~ : 비트 부정 1을 0으로, 0을 1로 ex) ~5 : 5는 0101 이므로 1010 = -8 + 2 이므로 -6 | : 비트 합 0 + 0 이면 0, 나머지 경우에는 1 ex) 2|3 = 010 + 011 = 01..
from google.colab import drive drive.mount('/content/drive') # 데이터 분석 필수 라이브러리 4종 세트 불러오기 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns # Starbucks Customer Data 폴더안에 있는 데이터 3개를 불러오기 base_path = "/content/drive/MyDrive/Colab Notebooks/data/Starbucks Customer Data/" transcript = pd.read_csv(base_path + "transcript.csv").drop(columns=["Unnamed: 0"]) #..
넘파이 arr.shape : (5, ) != ( 5,1) np에서의 -1: 다른 칸 후 나머지에 맞춘 수 v1 @ v2 : "dot prouct" : 각 자리별 원소의 곱의 합 Briadcast와 Universal function Broadcast : 크기가 다른 array를 연산시, 자동적으로 전파해줌 arr1 = np.array([1, 2, 3]) arr2 = np.array([[-1, -1, -1], [1, 1, 1]]) # 2개의 array를 더해보면? arr1 + arr2 array([[ 0, 1, 2], [ 2, 3, 4]]) 가 출력됨 : 자동적으로 배분해서 계산 Universal Function: numpy array의 모든 원소에 동일한 함수를 반복문으로 적용한 것과 같은 효과를 내는 기..
언어분석을 위한 프로그래밍 청강 사칙연산 괄호 1순위 거듭제곱 2순위 3순위 곱셈 -> 거듭제곱 굳이 괄호로 안 묶어도 ㅇㅋ a=10 b=2 a += b #a = a+b 니까 a = 12 a -= b # a = 10 a *= b # a = 20 a /=b # a= 10.0
!= : 불일치 != >= 등 : 항상 = 이 뒤에 오게 A = 300 print(A 어쩌고~ ) : 대신에 print( %d원 % A) 하면 좀 더 깔끔함 "nested 구조" : if 안에 if 다시 들어가는 경우 if X 300: print("커피") print("%d원" % (X-300)) vs if X = 300: print("커피") else: if X
객체지향 클래스와 인스턴스 클래스가 틀,(강아지) / 직접 접근 가능 인스턴스가 틀에 들어가는 정보( 이름, 나이 등) / 객체마다 별도로 존재 인스터스에 입력한 값이 같아도 id는 다 다름 "Self" : 있고 없고 호출방식에 차이가 있음 . 이해X,,, def , returm 으로 메소드 출력 모듈 : 함수,변수,크래스 등 구성 요소들을 모아놓은 파일 sys.path 로 모듈의 위치 확인 가능 sys.path.append('C:/위치') 로 모듈 추가 , import 후 사용 직접 실행할때랑 모듈로 사용하는 경우, 가동범위가 달라야함. ex)print 생략 -> main 함수 이용 init.py , alias
파이썬 == 함수형 프로그래밍 def func() 으로 값을 설정 return x,y,z = return 값 print (x,y,z) 함수를 어떻게 할당할지 람다 함수 : def,return등 생략하고 즉시 실행 가능