본문 바로가기

cs,코딩,알고리즘/네이버커넥트-인공지능기초다지기(2021)

AI BASIC 코치 강의_1주차(수업)

728x90

1주차 코칭 스터디 끝나고 1주차 마저 듣는 나는 게으름벵이..... 그래도 나름의 자극을 받았으니! 모르는 내용들 꼭꼭 씹어 삼키는 걸 목표로 하쟛

 

Jupyter notebook, 

파이썬 하려면 사실 툴이 많아서 뭘 사용해야하는지도 이제는 모르겠는 요즘,, 코딩 환경 알려주시니 겸사겸사 들어봐야징

jupyter notebook은 일반적인 터미널 쉘+웹기반 데이터분석 Notebook

colab은 저번에 파이썬 프로그래밍에서 장혜령 교수님이 알려주셨던 툴. 모듈이 이미 설치되어 있어서 상당히 편리하게 사용했었다!! 구글 드라이브+GCP+jupyternotebook이라고 한다

Function

터미널 환경에서 그냥 데이터를 받는 작업을 많이 한다고 한다.. 그 검은 배경 나 좀 무서운데...ㅋㅋ..

이런 순서도 설명해준다...교수님들은 해주지 않는 순서...

내가 맨날 헷갈렸던 원리.. 장혜령교수님이 해결해주셨지만 한번 더 정리!

**일단 return부터(장혜령교수님수업자료)

print는 return과 다르게 값을 '반환'해주는 게 아니라 함수 실행한 값을 '보여주기'만 한 것! 그래서 변수 c에 전달이 되지 않는다. 그래서 None이 찍힘.

 

print는 그냥 화면에 찍힐 뿐! 어디에 저장x/ return은 함수값으로 치환되어 값이 할당된다. (list에서 중요하게 사용된다)

리스트에서는 sorted()// list.sort()

(주의) return print(f1(2)는 안된다

print(f1(2))에서 함수 종결. 까라서 다른 변수에 할당해서 값을 얻어내는 것은 불가능

함수의 4가지 유형

console io(in/out)

print() 타입이 다른 걸 같이 하고 싶으면 1)형변환을 하던가 아니면 2)콤마,로

 

 

헷갈려서 다시 보고 해결했던 for문과 range 정리하기

 

while과 for의 차이

 

String

[시작, 끝값,스텝] <-여기서 string은 0부터 시작, 끝값보다 하나 앞자리까지 출력된다

'나 "를 문자로 만들거면 앞에 역슬래시| 적어주기, 아니면 부호를 거꾸로 적어주기

Call by object reference

: 파이썬 함수 내에서 메모리 데이터 파라미터를 피어싱했을 때 메모리를 어떻게 처리하는지

=>어떻게 유지되는지, 언제 바뀌는지가 포인트

새로 만들면 원래있던 객체의 주소를 끊어버린다는건가

 

그니까..위의 그림은,,

egg자체의 값은 append된 값까지이지만(2,3은 그대로 남아있음),

parameter로 전달된 ham의 값의 object reference 주소가 넘어가면서 ham의 값이 영향을 받다가 2,3으로 연결이 끊긴다는 애기인데.. (흠냐..쓰면서도 모르겠다...)

ex값에 변화가 없다. 메모리[1,2,3,4,5]는 고정되고 그 주소값x,y,temp가 가리키는 대상이 달라질 뿐

값을 할당하는 것(직접 변경)

리스트값이 이미 들어가있어. 이때 리스트 객체의 주소 값을 받아 값을 변경

function type hint

파이썬의 장점이 데이터의 타입을 몰라도 적당한 값 넣어서 돌리면 된다는 것!

Python Data Structure

강의소개도 진짜 말그대로 주옥같은 말이닷..!.. 처음에 장혜령 교수님 수업들었을 때 정규표현식 배우면서 이건 어따쓰누..이랬는데...ㅋㅋㅋ/ 그리고 1-2주만에 끝났던 휘리릭 끝나버렸던 진도라 여긴 좀 자세하게 톺아보야겠구만

stack&queue

(알고 있던 개념이었다. 용어는 몇번 들어본 거 같기도..?..)

리스트로 구현

.pop()은 제일 끝에 꺼 없애줘 리턴이 존재하면서도 a(변수)자체가 변해// 이때 인덱스가 없으면 마지막값 생략(원래는 해당 인덱스에 잇는 값 삭제

.sort()는 a를 변화시키고 return// 오름차순 정렬은 list이름.sort()/ 내림차순 정렬은 list이름.sort(reverse=True)아니면 reverse()

.sorted()은 원본은 변화시키지 않으면서 새로 만들어주는 친구(사용 방법은 sort와 동일)

=>이때 튜플,문자열은 immutable해서 sort()사용 안된다// 문자열은 리스트로 반환되니까 join()으로 붙여주기

글자 역순으로도 해보기

 

얘도 리스트로 구현,, 그러면

.pop(0)

 

collections_모듈

 

deque의 핵심은 "Linked list" 값들이 메모리에 고정적으로 차례대로 들어가 있는게 아니라, 다음 데이터가 저장되어있는 장소로 연결->그래서 유연하게 시퀀스형 데이터를 표현할 수 있다.

유연하다 함은.. 효율적인 구조로 처리 속도를 키워준다

defaultdict

초입값을 입력하지 않아도 알아서 연결해준다

 

counter()

값의 갯수를 dict type으로 반환

 

namedtuple()

Pythonic code

ㄱ..간지?...ㅋㅋㅋㅋㅋㅋ

split(), join()

 

List comprehension

이거는 그냥 왼쪽보다 오른쪽이 더 효율적이다..뭐 이런 느낌(자연스럽게 배웠었다 여기서도 range, len 사용 주의)

 

enumerate(열거하다)

: list의 element를 추출할 때 번호를 붙여서 추출

두번째 v는 벡터 스페이스 모델...이라고 한다..
중복값 없애려면 list(set())처리

 

zip()

: 값을 병렬적으로 처리(튜플 타입으로)

=>한큐에 사용

마무리

파이썬 중간고사 범위까지를 일주일만에 뚝딱 하셨다... 처음듣는 사람이 아니라 참 다행...이다..

그리고 시작하기 전에는 막막하고 무섭기만 했는데,, 하다보니 상당히 재미지게 하는중!!-!! 했던거 다시보면서 추가로 궁금했던 거나 안풀렸던 것들 다시 보는 것도 재미있당헿

문법은 익숙한데 vscode나 cmder를 쓴다.. 새로운 환경에 적응중....