[네이버 AI부스트캠프] 1주차 notable

또잉의 공부일지·2023년 11월 7일

첫주차는 강의가 매우 많은 것 같다. 프리코스에서 들었던 내용도 많지만..
어제는 오티와 첫 피어세션이 있었다.
조원분들과 자기소개도 하고 그라운드 룰도 정했다.
매주 수요일마다 논문리뷰를 하기로 했는데, 내가 첫 주자가 되어 11/15에 발표할 예정이다.
오늘은 강의 듣는 데에 집중할 수 있었다.

오늘 들은 내용중에 기록할만한 것

  1. 정규표현식
  • ?
    존재할수도, 아닐수도
  • |
    or
  • ^
    not
  • {~}
    ~번 반복
  • *
    반복
  • +
    최소 1회 이상 반복

    ex. ([\s\S]+?)
    \s: 공백문자
    \S: 비공백문자

test[1]
-> array([6,7,8,9,10])
test[1:3]
-> array([[6,7,8,9,10]]) # 인덱싱 2번 -> 2차원

같은 array임에도 인덱싱하는 방식에 따라 다른 결과가 나올 수 있다.
이 두개의 shape는 같나?

  1. Collections
  • OrderedDict
    넣는 순서가 보장되는 dict
  • defaultdict
    d = defaultdict(함수)
    문장 안에서 단어 수 셀 때 편할듯? dict.keys()에 없다면 1로 새로 생성 이런 거 없이 retun 1 하는 함수를 이용해 defaultdict 활용하면 되니까
  1. xml만 이용하면 BeautifulSoup 보다 훨 빠르다는데 xml만 이용하는 방식은 뭐지
  1. list보다 numpy 쓰는 게 좋은 이유?
    메모리 접근성↑ 따라서 빠르다.
    가리키고 있는 메모리 주소를 통해 접근(list)하는 게 아니라 그냥 값 자체를 가리키고 있어(numpy) 더 빠르다.

  2. Pythonic Code

  • zip

  • lambda

  • map

  • reduce

  • generator(권장!) >>> iterator
    메모리 사용↓
    메모리 주소만 가지고 있다가 필요할 때 yield해서 필요한 값만 가져오기 때문에 메모리가 절약된다.
    파일 데이터, list 타입 데이터 사용 시 적합

    근데 이말은 그럼 numpy >>> list 면의 얘기랑 반대니까 메모리가 절약되는 대신 느려지는 거 아닌가?

  • asterisk

    • 가변인자 (*args, *kwargs)
      args는 튜플 형태로 저장됨
      **kwargs는 dict로 저장됨.
      변수,
      args, **args 순서 안지키면 오류 남
    def aterisk_test(a,b,*args):
    	~~~
    aterisk_test(1,2,3,4,5)
    # -> args는 (3,4,5) dtype은 tuple
    • unpacking
      헷갈헷갈
    def asterisk_test(a, *args):
      print(a, *args) # 1,2,3,4,5,6
      print(a, args) # 1,(2,3,4,5,6)
      
    test = (2,3,4,5,6)
    aterisk_test(1, *test)

0개의 댓글