ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 패스트캠퍼스 환급챌린지 7일차 미션 (2월 7일) : 딥러닝·인공지능 Signature 초격차 패키지 Online. 강의 후기
    패스트캠퍼스 챌린지 2024. 2. 7. 17:25

    왔다네 왔다네 내가 왔다네

    (이걸 안다면 흐음..)

     

    자, 오늘은 

     

    Part1. 딥러닝을 시작하기전에

    CH03-06. 파이썬(Python)리스트 자료형과 튜플 자료형

     

    &

     

    CH03-07. 파이썬(Python)사전 자료형과 집합 자료형

     

     

     

     

     

    CH03-06. 파이썬(Python) 리스트 자료형과 튜플 자료형

    프로그램을 작성할 때 한 두개의 변수만 사용하는 것이 아니라 매우 많의 양의 변수를 다루어야 할 수 있다.

     

    리스트란?

    "자료들의 모음집, 리스트를 알고 싶다면 지난번 강의를 보면 된다." 

    리스트는대괄호 안에 원소들을 쉼표로 구분하여 넣을 수 있다.

    odds = [ 1,3, 5, 7, 9]

    print(odds) 

    → [ 1, 3, 5, 7, 9] // 답이 중요한게 아니라 저렇게 "[" 랑 "]" 사이에 값을 쉼표로 넣어버리면 바로 리스트 되는 것이다.

     

    특징1. 리스트 안에는 서로 다른 자료형의 데이터가 들어갈 수 있다.

    data = [1, 0.5, "짬뽕"] ← 정수형, 실수형, 문자형 다 위아더 월드로 들어가도 문제 없다는 말.

    print(data)를 해도 오류가 안난다는 말!

     

    특징2. 리스트에 대해서 인덱싱과 슬라이싱을 쓸 수 있다.

    evens = [ 2, 4, 6, 8, 10, 12, 14, 16, 18]

    print(evens[3]) 

    print(evens[:5])

    → 8

    → [2, 4, 6, 8, 10] 

         (지난번에도 글을 적었지만 :5 까지면 -1인 0부터 0번째, 1번째, 2번째, 3번째, 4번째인 10까지 가는것이다.)

     

    특징3. 리스트 끼리 더할 수 있다.

    a = [1,2,3,4,5] b=[6,7,8,9,10]

    print(a+b) = [1,2,3,4,5,6,7,8,9,10]

     

    특징4. 다중으로 중첩하여 사용할 수 있다.

    이중 포문에서 본 것처럼 리스트 안에 원소 자체가 리스트일 수 있다.

     

    arr = [

               [1,2,3,4,5]                   ←1행

               [6,7,8,9,10]                 ←2행

               [11,12,13,14,15]          ←3행

                                           ]

     

    print(arr)

    → [[1,2,3,4,5], [6,7,8,9,10], [11,12,13,14,15]

     

    print(arr[0][1])

    → 2

     

    print(arr[2][2])

    → 13

     

    자 [행] [열] 이렇게 구성되는데, [0][1]을 찾아보자면.... 첫번째 줄, 두번째 값인 2를 가져온다.

    (왜냐묘는 인덱스는 0부터 시작하기 떄문에 0이면 첫번째 행, 1이면 2번째 원소 이기 때문이다.)

     

    벡터나 수열에 엄청 중요하고.... 특히 텐서의 가장 기초기초기초 니까 꼭 이해해두도록 하자.

     

     

    특징5. 문자열은 불변객체 이지만, 리스트는 가변 객체다.

     

    쉬운말로, 리스트 내 원소들을 다른 값으로 대체할 수 있다는 말이다.

     

    a = [5,6,7,8,9]

    a[4] = 5 ← a의 인덱스 4, 그러니까 5번째 자료를 5로 바꿔버려라

    print(a)

    → [5,6,7,8,5]

     

    a[1:4] = [4,3,2] ← a의 인덱스 1부터 3까지, 즉 6,7,8 이란 값을 4,3,2로 대체하라

    print(a)

    → [5,4,3,2,5] 

        (마지막 5는 a라는 변수에 지금 5라는 값을 아까 방금 넣었으니 그대로 갖고있는거다)

     

    특징 6. insert, append, remove, sort 같은 것도 있다.

     

    특징6. 추가 메서드

    arr = []                         ← 빈 껍데기의 리스트 객체 생성

    for x in range(10):       ← x에 대해 0~9번 까지 아래를 수행하라

     arr.append(x)            ← arr에 값을 넣어라.

     

     

    특징6. 2차원 이상의 리스트를 초기화 할때는 컴프리헨션을 사용한다.

     

    arr = [5]* 8

    print arr

    → [5,5,5,5,5,5,5,5]

     

    # 4x5 크기를 갖는 2차원 리스트 초기화

    arr = [[0]*5 for  _ in range(4)]

    →[[0,0,0,0,0],[0,0,0,0,0], [0,0,0,0,0], [0,0,0,0,0]]

     

    arr = [[i]*5 for i in range(4)] ←i가 0~3번 동안 i에 대해 [i]만큼 나열하라.

    [[0,0,0,0,0], [1,1,1,1,1], [2,2,2,2,2], [3,3,3,3,3]]

     

    arr = [[(i*5)+j for j in range(5)] for i in range(4)]

    → 바깥쪽 포문( for i in range(4)) 즉, 안에 것을 4번 반복하라. i 값은 0 부터 3까지 그니까 총 4묶음이 생긴다.

         안쪽 포문 [(i*5)+j for j in range(5)] 여기서 (i*5)+j  이걸 5번 반복하라. j 값은 0부터 4까지 그니까 총 5개가 생긴다.

     

    아우, 말이 너무 어렵다. 쉽게 한줄로 다시 표현하자면,

        (i*5)+j  이걸 5번 반복한 걸 총 4번 반복하라.

     

         (i*5)+j  이걸 5번 반복한 걸 ← 이게 한 묶음, 

         총 4번 반복하라. ←이게 전체 한묶음

       ▶ 지하철에서 산 델리만쥬 한박스에 낱개 포장으로 4박스가 들어가는데 1박스에 5개가 들어가더라.

     

    →[[0,1,2,3,4],[5,6,7,8,9],[10,11,12,13,14],[15,16,17,18,19]]

     

       

    튜플자료형

     

    리스트 자료형과 유사하지만, 특징이 다르다.

    리스트는 [] 대괄호지만, 튜플은 () 이고, 튜플은 값을 변경할 수가 없다.

     

    즉, 값을 변경하면 안되믄 () 튜플을 쓴다.

     

    또한, 관행적으로 데이터의 성질이 다른 것들을 묶을 때 보통 튜플을 쓴다.( 그말인 즉슨, 리스트는 원래 비슷한 애들끼리 묶는다는 말이겠죵?) (예시: 비용, 노드번호)

     

    CH03-07. 파이썬(Python) 사전 자료형과 집합 자료형 

     

    사전이 일 사(事) 앞 전 前) 이 아니라 딕셔너리 사전이다. 네,

     

    사전 자료형이란?

    "사전처럼 특정한 원소의 존재 여부를 사전에서 단어 찾는 것처럼 빠르게 확인하고 추가/삭제도 할 수 있다." 

     

    그래서 어떻게 쓰는건데요?

     

    데이터를 키(Key)와 값(value) 쌍 형태로 저장할 때 사용할 수 있다.

    (예: 보통 우리가 짬뽕 이라는 단어를 찾을 때 자음 'ㅉ'을 찾는 것처럼, 여기선 'ㅉ'가 키가 된다는 개념)

     

    사전데이터[키] = 값

     

    arr1 = ["컴퓨타", "키보드", "모니터"]

    arr2 = ["Computer", "Keyboard", "Monitor"]

     

    data = {}   ← data라는 '비어있는' 변수 바구니를 하나 만들자.

     

    for i in range(3):

        data[arr1[i]] = arr2[i]

    print(data)

     

    자, i가 0이다.

    data[ arr[0]] = arr2[0],

     

    사전데이터[키] = 값

     

    위의 내용에 따라 arr[0] 인 컴퓨타 라는 키(key) 에, arr2[0]인 'Computer' 가 들어간다는 말이다.

     

    data는 {'컴퓨타' : 'Computer', '키보드' : 'Keyboad', '모니터' : 'Monitor'}

     

     

    그래서 어떻게 쓰는건데요2

     

    data = {}                                               ← 데이터라는 이름을 가진 사전을 만들고,

    data['apple'] = "사과"                          ← 데이터라는 이름을 가진 사전안에 apple 이라는 키 값에 '사과'를 넣고

    data['banana'] = "바나나"                   ← 데이터라는 이름을 가진 사전안에 바나나 이라는 키 값에 '바나나'를 넣고

    data['carrot'] = "당근"                          ← 데이터라는 이름을 가진 사전안에 당근 이라는 키 값에 '당근'를 넣고

     

    for key in data.key():                           ← key를 전체를 돌면서,

       print("key:", key, ", value: ", data[key])   ← 각 키와 키에 들어가는 값을 뽑아라.

     

     

    그래서 어떻게 쓰는건데요3

     

    data = [1,3,3,5,4,3,1,4]

    counter = {}

     

    for X in data:                                    ← X 를 내가 data 안에서 찾을 건데,

        if X not in counter :                      ← X가 만약에 counter, 즉 counter 라는 이름의 사전에 없으면, 

            counter[X] = 1                          ← 사전에 X라는 키에 1이라는 값을 넣고(신규로 등록) 

        else:                                 

             counter[x] += 1                        ← 그르치 않으면(이미 등록된 key) X라는 키에 숫자를 1씩 더해라.

    print(counter)

     

    즉, 각 숫자가 몇개씩 있는지 확인하는 코드. 유용하겠쥬?

     

    마지막으로, 집합 자료형(Set)

     

     

     

     

    강의가 6분이라서 별거 없을 줄 알았는데, 진짜 중요한게 자아아아아안뜩 나오는구나....

     

     

    집합 자료형이란?

     데이터의 중복을 허용하지 않고, 순서가 상관없을 때 사용하는 자료형.

     즉, 중복을 허용하지 않으므로 등장한적 있는지 체크할 때 효과적이다.

     

     

    그래서 어떻게 쓰는건데요4

     

    data = [1,3,3,5,4,3,1,4]

    visited = set()

     

    for x in data:                       

        if x not in visited :

            visited.add(x)

        else:

             print("중복 원소 발견: ", x)

     

    print("고유한 원소들:", visited)

     

    이제 어떤지 읽으면 아실 것이다. data 안에서 엑스가 / 만약 x가 집합자료형인 visited에 없으면 / 

    visited에 add 메서드를 통해 사전 처럼 원소를 집어 넣고 / 

     

    그렇지 않다면(이미 비지티드에 x라는 원소가 있으면) / 중복된 원소 발견이라 외치며 그 원소를 출력한다.

     

     

    위에서 본 것처럼, add 매서드를 통해 원소를 넣을 수있고

     

    반대로 제거할 때는 remove() 메서드를 써보자.

     

    마지막으로 집합자료형은 합집합( \) 교집합(&), 차집합(-) 이 가능하다.

     

     

     

    7일차 끝.

     

     

    본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

    https://bit.ly/48sS29N

Designed by Tistory.