9. Data 표현 - Array and Table

ChamChoi·2022년 1월 7일
0
  1. 배열은 가까이에 - 기본 통계 데이터 계산
    (1) 평균 계산하기
    (2) 배열의 의미
    - 입력받은 모든 숫자들을 하나의 변수에 저장.
    - 파이썬 리스트는 동적 배열.
    - 배열은 연속된 메모리 영역에 순서대로 저장된다는 특성 때문에 가운데를 지우게 되면 나머지들을 앞으로 당겨줘야 함. 추가시에는 뒤로 밀어 공간을 확보하고 삽입.
    - 리스트는 배열과는 다르게 연속된 위치가 아닌 떨어진 영역에 저장된다. 포인터 개념이 있어 한 메모리의 포인터가 다음 메모리의 포인터(위치)를 가리킴.
    - 파이썬에서 리스트는 별도의 import가 필요 없지만 array를 사용하기 위해서는 import가 필요함.
    - 리스트 안의 element 사이에 다른 타입의 자료형이 허용됨. 하지만 배열은 처음부터 element 유형을 지정해서 생성. 다른 타입 허용 안됨.

  2. 끝판왕 등장! Numpy로 한 방에
    (1) 장점
    - 다차원 배열 ndarray 데이터 타입을 지원
    - 반복문 작성 필요없이 전체 데이터 배열에 빠른 연산을 제공하는 표준수학함수 제공
    배열 데이터를 디스크에 저장/불러오기 가능
    - 선형대수, 난수 발생기, 푸리에 변환이 가능. C/C++, 포트란 코드 통합.
    - ndarray.size: 행렬 내 원소의 개수
    - ndarray.shape: 행렬의 모양
    - ndarray.ndim: 행렬의 축 개수 의미
    - reshape(): 행렬의 모양을 바꿔줌. 모양을 바꾸기 전후 행렬의 총 원소 개수가 맞아야 함. ex) [10, 1] -> [5,2]
    - 브로드 캐스트: ndarray 객체에 상수 연산. 스칼라 합/곱 등
    - 슬라이스와 인덱싱

    7) 랜덤
    - np.random.randint(): 0~1사이의 실수
    - np.random.choice(): ()안의 수 중 하나
    - np.random.permutation(): ()안의 수로 랜덤배열을 만들어줌.
    - np.random.normal()
    - np.random.uniform()
    8) 전치행렬
    - arr.T: 행과 열 전치
    - np.transpose: 축을 기준으로 행렬의 행과 열 바꾸기

  3. 데이터의 행렬 변환
    (1) 픽셀과 이미지
    - 컬러스케일: RGB, 3채널 튜플. 투명도 포함시 RGBA 4채널 튜플.
    - 그레이스케일: 1채널 튜플.
    - 좌상단이 시작점.(0,0)
    (2) 이미지 관련 라이브러리
    - matplotlib
    - PIL
    (3) 간단한 이미지 조작
    - open: Image.open() 흑백모드로 열려면 Image.open().convert('L')
    - size: Image.size
    - filename: Image.filename
    - crop: Image.crop((x0, y0, xt, yt))
    - resize: Image.resize((w, h))
    - save: Image.save()
    - color value: Image.getcolor()

  4. 구조화된 데이터란 (= dict)

    • Hash: Key와 Value로 구성되어 있는 자료 구조. 두 개의 열만 갖지만 수많은 행을 가지는 구조체. 다른 언어에서는 mapping, associative array 등으로 불리고 파이썬에서는 dictionary.
  5. 구조화된 데이터와 Pandas

    Pandas의 특징

    • Numpy기반에서 개발되어 Numpy 애플리케이션에서 쉽게 사용 가능
    • 축의 이름에 따라 데이터를 정렬할 수 있는 구조
    • 다양한 방식으로 인덱싱하여 데이터를 다룰 수 있음.
    • 통합된 시계열 기능과 시계열 데이터와 비시계열 데이터를 함께 다룰 수 있는 통합 자료 구조
    • 누락된 데이터 처리 기능
    • 데이터베이스처럼 데이터를 합치고 관계 연산을 수행하는 기능

(1) Series
- 일련의 객체를 담을 수 있는, 1차원 배열과 비슷한 자료 구조.
- 배열 형태인 리스트, 튜플, 딕셔너리를 통해서 만들거나 NumPy 자료형으로도 만들 수 있음.
1) Series의 인덱스
- series.value: array 형태로 값 호출
- series.index: 인덱스의 이름을 정해줄 수 있다. 기본값은 정수.
- 인덱스를 다른 값으로 변경 가능하다는 것은 인덱스가 리스트의 인덱스이면서, 딕셔너리의 키와 같은 기능으로 작용할 수 있다는 것.
- 정수형태에서는 리스트와 유사, 값이 할당된 상태는 딕셔너리와 유사.
- 값이 할당된 인덱스는 슬라이싱 가능.
2) Series의 Name
- Series 객체와 인덱스는 모두 name 속성이 있다. 이 속성은 Pandas의 DataFrame에서 매우 중요.
(2) Data Frame
1) Series로 변환
- 리스트로 나온다
- pd.Series(data)
2) DataFrame으로 변환
- 테이블로 나온다.
- pd.DataFrame(data)
- csv파일은 DataFrame으로 읽는다.

  1. Pandas와 EDA
    (1) 일반
    - EDA: Exploratory Data Analysis. 데이터를 주욱 훑어보는 것.
    - .head(), .tail(): 처음과 끝의 5개 행
    - .columns: 데이터셋의 컬럼명 확인
    - .info(): 컬럼별 Null값과 자료형 보여줌.
    - .isnull().sum(): missing value를 체크하고 있다면 그 합을 보여줌.
    (2) 통계
    - .value_counts(): 각 카테고리별로 몇 개의 값이 있는지.
    - .value_counts().sum(): 컬럼별 통계 수치의 합
    - .sum(): 특정 컬럼을 지정하여 합을 구함. ex) data['country'].sum()
    - .corr(): 2개 컬럼의 상관관계 조사. 예) data['country'].corr('value')
    - count(): NA를 제외한 수를 반환
    - describe(): 요약 통계를 계산
    - min(), max(): 최소, 최댓값을 계산
    - sum(): 합을 계산
    - mean(): 평균을 계산
    - median(): 중앙값을 계산
    - var(): 분산을 계산
    - std(): 표준편차를 계산
    - argmin(), argmax(): 최소, 최댓값을 가지고 있는 값을 반환
    - idxmin(), idxmax(): 최소, 최댓값을 가지고 있는 인덱스를 반환.
    - cumsum(): 누적 합 계산
    - pct_change(): 퍼센트 변화율 계산
profile
microCT_applications

0개의 댓글