본문 바로가기

배우기/복습노트[Python과 분석]

[복습] Python 자료구조(2) (딕셔너리 위주)

728x90
반응형

https://metime.tistory.com/228

 

위 게시글에 이어 자료구조를 계속해서 공부하였다.

 

0. 스칼라

 

1. 리스트(튜플)

슬라이스 색인하면 차원축소가 방지된다.

 

튜플도 1차원 자료구조 중 하나인데 거의 쓰지 않는다. 튜플은 소괄호로 정의된다.

튜플은 위처럼 수정 불가하다. read-only 객체이기 때문이다.

 

 

 

2. 딕셔너리

  - 1차원

  - key-value 자료구조

  - 나열되는 데이터에 이름을 부여하는 방식(빠르게 데이터를 찾고 수정할 수 있음)

 

dict() 으로 정의하거나

{} 중괄호로 정의한다 (리스트는 대괄호, 튜플은 소괄호)

 

 

key-value 구조를 1차원으로 표현하면 딕셔너리, 2차원 구조로 표현하면 데이터프레임이 된다.

 

 

 

3. 배열

  - 다차원구조

  - 단 하나의 데이터 타입으로 구성되어있는 구조

  - 수학적 연산, 행렬의 연산에 가장 많이 등장함

  - 딥러닝 코드를 짤 때 배열로 input 함

 

배열 만들기

 

 

4. 시리즈

  - 1차원

  - 데이터 프레임의 일부를 나타내는 1차원 구조

  - 하나의 데이터 타입만 허용함

 

 

위처럼 데이터 프레임의 일부를 추출하면 Series 라는 type을 확인할 수 있다.

 

시리즈 만들기

 

 

 

5. 데이터 프레임

 

이렇게 하면 딕셔너리 1차원 구조가 데이터 프레임인 2차원 구조가 된다. 즉 딕셔너리가 곧 데이터 프레임이 된다.

 

key indexing

데이터 프레임의 키를 .으로 호출할 수 있으나 권고하지 않는다.

두 번째 방법인 대괄호를 이용하여 키색인을 활용하면 된다.

 

 

 

 

반응형

 

본격적으로 딕셔너리에 대하여 공부해보자.

 

딕셔너리(리스트의 튜플처럼 set 이라는 자료 구조도 있음) 

  - 1차원

  - key-value 자료 구조

  - 나열되는 데이터에 이름을 부여하는 방식(빠르게 데이터를 찾고 수정할 수 있음)

  - 활용: mapping rule 생성 시

 

예) 딕셔너리를 사용한 라벨 인코딩

pandas의 1차원 자료인 시리즈에 적용되는 메서드 map을 활용하여 라벨인코딩을 하는 방법이다.

 

 

 

1. 생성

중괄호 {} 를 사용하거나 dict을 사용한다.

키가 반드시 전달되어야 하므로 Series 자료를 이용하여 dict을 하였다.

 

 

 

2. 색인

데이터프레임처럼 d1.col1 이런 색인은 불가하다(현재는 데이터프레임만 적용 가능한 색인이지만 권고하지 않음)

위처럼 색인이 가능하며 get을 이용해서도 색인이 가능하다. 

 

 

3. 구조 변경

딕셔너리 키 추가하는 방식이다.

키를 삭제하는 방법으로는, R에서는 NULL을 지정하여 키를 삭제하였으나 파이썬에서는 키 에러가 뜨므로 적용이 안된다.

애초에 R에서는 없는 키인 col4를 불러내면 Null이라는 값이 떴으나 파이썬에서는 없는 키인 col4를 불러 내면 에러가 뜨기 때문이다.

 

키 삭제를 하려면 아래와 같이 del을 사용하면 된다.

 

원소의 일부를 수정하려면 다음과 같이 작성한다.

 

 

4. 활용

아까 처음에 예를 보였던 딕셔너리를 활용한 라벨 인코딩이 있고, 데이터 프레임 생성이 있다.

예) 데이터 프레임 생성

 

 

 

5. set

  - dictionary 의 key만 모아서 저장하는 자료구조

위와 같이 set을 사용하면 키만 분리된다.

키는 중복이 불가하므로 따라서 아래와 같이 R의 unique 처럼 활용하기도 한다.

 

 

위와 같이 중복을 제거함과 동시에 정렬된 결과를 보장해주기도 한다.

728x90
반응형