NUMPY

Numpy 란?

  • 다차원의 숫자 배열을 Python에서 효율적으로 처리 할 수 있도록 만들어진 라이브러리
  • 배열에 대한 처리에 특화된 라이브러리
  • 리스트나 튜플은 중첩이 가능하여 다차원 배열을 표현할 수도 있음
  • 대규모 처리에 리스트나 튜플을 사용하면 처리속도가 느림
  • 배열 연산이 빠름. 빠른 이유는 다차원 배열 객체인 NDARRAY를 기본 데이터 저장 포맷으로 사용하고 있기 때문

ndarray 란?

  • 다차원 배열 객체
  • ndarray 는 저장하고 있는 ‘데이터’와 ‘메타데이터’라 불리는 부가 정보로 구성
  • 데이터를 시스템상의 메모리에 빈틈없이 배치하여 속도가 빠름
  • 모든 배열은 shape 튜플, dtype 객체를 가짐

ndarray 생성 함수

  • array : 입력 데이터를 ndarray 타입으로 변환
  • asarray : 입력 데이터를 ndarray로 변환하지만 입력 데이터가 이미 ndarray인 경우 복사가 되지 않음
  • arange : 내장 range 함수와 유사하지만 리스트 대신 ndarray를 반환
  • ones, ones_like : 주어진 dtype과 주어진 모양을 가지는 배열을 생성하고 내용을 모두 1로 초기화 함 ones_like는 주어진 배열과 동일한 모양과 dtype을 가지는 배열을 새로 생성하여 내용을 모두 1로 초기화 함.
  • zero, zero_like : ones, ones_like 와 동일하고 내용을 모두 0으로 초기화 함
  • empty, empty_like : 메모리를 할당하여 새로운 배열을 생성하지만 ones나 zeros 처럼 값을 초기화 하지는 않음 *eye, identity : N * N 크기의 단위 행렬을 생성. 좌상단에서 우하단을 잇는 대각선은 1로 채워지고 나머지는 0으로 채움

Numpy 함수

  • dot : 행렬의 내적을 구함
  • sort : 정렬 함수
arr = np.random.randn(8)
arr.sort()
  • where : 조건절 표현
np.where(condition, 2, 3)

ndarray slicing

  • [:] : 배열 전체
  • [0:1] : 0번째부터 1번째까지, 1번은 미포함
  • [:5] : 0번째부터 5번째까지, 5번 미포함
  • [2:] : 2번째부터 끝까지
  • [-1] : 제일 끝에 있는 배열값 반환
  • [:-1] : 0번째부터 끝까지

유니버셜 함수

  • 배열의 모든 요서에 대해 요소마다 특정한 함수를 적용하여 리턴하는 기능.

array 1개에 적용되는 함수

  • abs : 절대값 계산
  • sqrt : 제곱근 계산
  • square : 제곱 계산
  • exp : 무리수 e의 지수로 삼은 값을 계산
  • log : 자연로그
  • sign : 부호 계산(+ : 1, – : -1, 0 : 0)
  • ceil : 소수 첫 번째 자리에서 올림
  • floor : 소수 첫 번째 자리에서 내림
  • isnan : NaN 인 경우 True
  • isinf : 무한대인 경우 True
  • cos, cosh, sin, sinh, tan, tanh : 삼각함수 계산

array 2개에 적용되는 함수

  • add : 동일한 위치의 성분끼리 더함
  • subtract : 동일한 위치의 성분끼리 뺌
  • multiply : 동일한 위치의 성분끼리 곱함
  • divide : 동일한 위치의 성분끼리 나눔
  • maximum : 동일한 위치의 성분끼리 비교 하여 각각의 최대값 반환
  • minimum : 동일한 위치의 성분끼리 비교 하여 각각의 최소값 반환

array 에 적용되는 통계 함수

  • sum : 배열에 대한 모든 원소의 합
  • mean : 산술평균
  • std : 표준 편차
  • var : 분산

배열 집합 연산

  • unique(x) : 배열 x 에서 중복된 원소를 제거한 후 정렬
  • intersect1d(x,y) 배열의 교집합
  • union1d(x,y) : 배열의 합집합
  • in1d(x,y) : x의 원소중 y의 원소를 포함하는지여부 (boolean 반환)
  • setdiff1d(x,y) : 배열의 차집합
  • setxor1d(x,y) : 대칭 차집합

난수 생성

  • seed : 난수 발생기 시드를 지정
  • permutation ; 순서를 임의로 변경하거나 임의의 순열 반환
  • shuffle : 순서 섞음
  • rand : 균등분포에서 표본을 추출
  • randn : 표준편차가 2이고 평균값이 0인 정규분호 에서 표본을 추출

python

데이터 타입

  • 숫자형 : 500, 12345L, 1.23
  • 부울 : True, False
  • 문자열 : ‘aaa’
  • 리스트 : [‘aaa’, ‘bbb’]
  • 딕셔너리 : {‘aaa’ : ‘111’, ‘bbb’ : ‘222}
  • 튜플 : (‘aaa’, ‘bbb’)
  • 세트 : {1, 2, 3, 4}
  • 바이트
  • 바이트 배열

문자열 슬라이싱

  • s[시작:끝:증감]
  • 0 에서 부터 시작하고 끝부분에는 자기 번호 제외
 s = 'pandas'
>>> s[0:1]
'p'
>>> s[:2]
'pa'
>>> s[-2:]
'as'
>>> [::2]
'pna'

모듈 import

  • 모듈은 여러 코드를 묶어 다른 곳에서 재사용할 수 있는 코드 모음의 의미
  • dir() 함수로 모듈에 어떠한 함수 혹은 데이터가 들어 있는지 알 수 있음.
>>> import math
>>> dir(math)
  • 모둘 import 4가지 방법
    1. import <모듈>
    2. from <모듈> import <어트리뷰트>
    3. from <모듈> import *
    4. import <모듈> as <별칭>

표준 입출력

  • 화면으로 출력 시 print() 함수 사용
  • sys.stdout도 가능
  • 입력 시 input() 함수 사용

파일 입출력

  • open(file, mode)
  • mode
    • r – 읽기모드
    • w – 쓰기모드
    • a – 쓰기, 이어쓰기
    • + – 읽기, 쓰기
    • b – 바이너리 모드
    • t – 텍스트 모드(default)
&gt;&gt;&gt; f = open('text.txt', 'w')
&gt;&gt;&gt; print('file write', file=f)
&gt;&gt;&gt; f.close()