JuJuKwakKwak

Day8 본문

Data Science/국비지원

Day8

jujukwakkwak 2021. 12. 22. 17:37

<참고>

1) https://giphy.com/

 

GIPHY - Be Animated

GIPHY is the platform that animates your world. Find the GIFs, Clips, and Stickers that make your conversations more positive, more expressive, and more you.

giphy.com

(이건 gif 라 mp4로 변환시켜야 줌 배경으로 가능. 컴터에 비디오 편집기 검색해서 mp4로 저장해주시면 됨!)

 

2) https://ezgif.com/gif-to-mp4 

 

Online GIF to MP4 Video converter

Convert animated GIF to MP4 Video. Upload a GIF or paste image url and this tool will output silent MP4 video file. Free online tool with no watermarks.

ezgif.com

(git 를 mp4로 변환해주는 사이트)


<자료구조>
자료구조는 어려운 내용이다.
네카라쿠배: 네이버, 카카오, 라인, 쿠팡, 배달의 민족
직토: 직방, 토스
자료구조의 개념 : 특징이 있는 정보를 효율적으로 저장 및 반환하는 방법
어떻게 자료를 효과적으로 구조화할 것인가?
먼저 들어간 것이 먼저 나올 것인가?
나중 들어간 것이 먼저 나올 것인가?
파이썬의 기본적인 자료 구조 : 리스트

- 스택(stack)
Last In First Out(LIFO)
push : 데이터 밀어넣어서 저장
pop : 데이터 팍 튀어나와 추출
for 문 안에 있는 '_'(언더 바)는 아무 의미 없다는 뜻이다.

- 큐(que)
First In First Out(FIFO)
pop(0) : 가장 처음에 들어간 값을 추출

- 튜플
도대체 튜플은 언제 쓰이는 거야? -> 학번, 이름, 주민등록번호
t = (1, )    # 값 하나만 튜플 선언할 때

- 세트(set)
순서 없이 저장, 중복을 허용하지 않는다, 수학의 집합과 비슷
중복 제거하고 다시 리스트로 변환할 때 사용

- 딕셔너리
유일한 구분자 키(key)로 검색할 수 있다.
키는 문자열, 숫자형으로 선언 가능
값은 다양한 자료형이 들어갈 수 있다 : 문자열, 리스트, 튜플, 세트, 딕셔너리

<파이썬 스타일 코드>
파이썬 철학 : 인간의 시간은 컴퓨터의 시간보다 더 중요하다
텍스트 분석에 많이 쓰이는 함수 : join 함수, split 함수
리스트 컴프리헨션 : 간결하고 빠르게 for 문을 수행, 권장되는 코딩
- 필터링 : if 문과 리스트, if 와 else 를 같이 쓸 경우는 앞으로 옮긴다
- 중첩 반복문
- 이차원 리스트
enumerate 함수 : 인덱스와 값을 함께 추출
zip 함수 : 같은 인덱스의 리스트값들을 병렬로 묶어 추출

<파이썬 스타일 코드2>
람다 함수 : 함수 이름 없이 사용하는 함수. def 나 return 없다.
map 함수 :
- 파이썬 2.x 버전 때 사용되었던 것들이어서 요즘은 안 쓰는 추세이다.
- 리그트 컴프리헨션을 써라.
reduce 함수 : 모든 값을 통합하는 함수

<선형대수학>
벡터 : 크기와 방향
스칼라 : 크기
행렬
- 내적 곱 : (m, n) * (n, k). 앞 행렬의 열 수와 뒤 행렬의 행 수가 서로 같아야 함
             : 머신러닝 가중합 계산 시 사용됨


상황별로 문제를 해결하는 능력이 중요하다.
배운 시간만큼 복습 시간이 필요하다.
겁 먹으면 하기 싫어진다.
행렬은 Numpy로 처리하는게 좋다.


<코드 모음>

# 리스트를 역순으로 정렬(stack이나 pop 개념을 활용해서)
result = []
for _ in range(len(world_list)):
    result.append(world_list.pop())
print(result)

 

 

# 또 다른 방법
world_list[::-1]

 

 

# 리스트 컴프리헨션 - if else 문
result = [i if i%2==0 else 10 for i in range(10)]

 

 

# 리스트 컴프리헨션 - 중첩 반복문
result = [i+j for i in word_1 for j in word_2]

 

 

# 리스트 컴프리헨션 - 이차원 리스트
words = 'The quick brown fox jumps over the lazy dog'.split(" ")
stuff = [[w.upper(), w.lower(), len(w)] for w in words]

 

 

# enumerate 함수와 zip 함수 연계 사용
alist = ['a1', 'a2', 'a3']
blist = ['b1', 'b2', 'b3']
for i, (a, b) in enumerate(zip(alist, blist)):
    print(i, a, b)

 

 

# 가변 변수
def asterisk_test(a, *args):    # args 자리에 몇 개가 들어올지 모르겠다
    print(a, *args)    # 튜플을 언패킹하겠다
    print(type(args))
    
asterisk_test(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은 변수 a에, {'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}는 변수 kargs에 할당됨

 

 

# 전치 행렬
matrix_a = [[1,2,3], [4,5,6]]
np.array(matrix_a).T

 

 

# 행렬 내적 곱
matrix_a = [[1,1,2], [2,1,1]]
matrix_b = [[1,1], [2,1], [1,3]]

matrix_a = np.array(matrix_a)
matrix_b = np.array(matrix_b)

np.dot(matrix_a, matrix_b)

'Data Science > 국비지원' 카테고리의 다른 글

Day9  (0) 2021.12.23
Day8 - Code  (0) 2021.12.22
Day7 - Code  (1) 2021.12.22
Day7  (0) 2021.12.21
Day6 - Code  (0) 2021.12.20