1. 변수와 자료형

변수(Variables) : 값을 저장하는 공간으로 여러 Type의 자료형이 들어간다.

자료형(Types) : 변수에 할당될 데이터의 형태.

int : 정수, 소수점 이하의 값을 가지지 않은 숫자 (integer)

float : 실수, 정수와 소수점 이하의 값을 가진 숫자를 모두 포함하는 개념

str : 문자열(string)

bool : 참과 거짓(boolean)

# 파이썬은 기본적으로 입력한 값에 따라 자료형을 자동으로 지정한다
a = 5
b = 5.5
c = '5.01234'
d = True

## 변수의 자료형을 출력
print(type(c))

### 변수의 자료형은 가능한 범위내에서 임의로 변경이 가능하다
a_string = str(a)
c_float = float(c)

2. 배열

배열(list) : 각 자료형들의 집합체

파이썬의 배열은 다양한 자료형을 삽입할 수 있다. 심지어 배열 안에 배열을 삽입할 수도 있다.

a = [1, 2.3, True, '텍스트', [1,2,3,4]]

배열의 인덱스는 n개의 자료형이 삽입되었을 경우, 0부터 n-1까지 존재한다.

인덱스값로 음수를 사용할 경우 배열의 끝부터 접근이 가능하다.

b = [1, 2, 3, 4]
# List b의 index는 0부터 3까지
b[0] # 1
b[3] # 4
b[-1] # 4

연속된 값을 가져올 경우, list[start:end] 의 형식으로 가져올 수 있다.

단, end index에 해당하는 값은 포함하지 않는다.

c = [5,6,7,8,9,10,11,12]
c[:2] # [5,6]
c[4:-1] # [9,10,11]

배열은 값의 변경, 삭제 뿐만 아니라 다른 배열과의 결합이 가능하다.

d = [1,2,3,5,8,13,21]
d[1] = "a"
d # [1,"a",3,5,8,13,21]
del(d[1])
d # [1,3,5,8,13,21]

e = ['a','b','c','d','e']
f = d + e
f # [1,3,5,8,13,21,'a','b','c','d','e']

3. 함수와 패키지

함수(function) : 단일 코드들을 유용하게 활용하기 위한 개념

  1. 코드의 재사용성을 높이고 중복성을 최소화
  2. 하나의 목표를 위해 프로세스를 파편화(= 절차적 분해)

파이썬 내부에서 사전에 정의된 함수도 있지만 사용자가 직접 정의한 함수도 존재한다.

# 내장 함수로 3.0의 자료형을 출력
print(type(3.0))

메서드(method) : 일반적인 함수와 표현식들이 다양한 타입에 맞춰 작동하는 것과 달리 특정 자료형에 대해서만 작동하는 기능들의 통칭(= functions that belong to objects)

[1,2,3,4].append(5) # [1,2,3,4,5]
"abc".upper() # "ABC"

모듈(module) : 최상위 레벨의 프로그램 구성 단위로 일반적으로 파이썬 단일 파일을 의미

패키지(package) : 모듈들의 집합

4. Numpy

a = [1,2,3,4]
b = [5,6,7,8]
c = a + b # [1,2,3,4,5,6,7,8]
d = a * 3 # [1,2,3,4,1,2,3,4,1,2,3,4]

위에서 나온 예제처럼 python 자체로는 배열 단위의 수치연산은 어렵다. 그렇기 때문에 numpy(numeric python)가 등장했다. 기존 배열을 numpy.array로 변환시키면 배열 단위의 수치 연산이 손쉽게 가능해진다.

import numpy as np
a = [1,2,3,4]
b = np.array(a)
c = b * 3 # [3,6,9,12]
## numpy.array에 다른 데이터 타입이 들어갈 경우, 가능한 범위에 한해서 수치로 치환됨
d = np.array([True, 1,2]) + np.array([False,3,4]) # [1,4,6]
## 기존 배열에서의 슬라이싱도 numpy.array는 가능하다
e = b[1:] # [2,3,4] 

데이터 분석에 있어서 1차원 배열 뿐만 아니라 n차원의 배열도 자주 접하게 될 것이다. 기본적인 배열의 형태를 확인하고 원하는 만큼 slicing도 가능하다.

import numpy as np
a = [[1,2,3,4],[5,6,7,8],[9,0,10,11]]
b = np.array(a)
b.shape # (3,4) 배열의 형태
b[0][3] # 4
b[:,2:] # [[3,4],[7,8],[10,11]]

Numpy는 평균, 중간값, 상관계수, 합계, 정렬 등 수치계산을 도와줄 내장 함수를 보유하고 있다.

import numpy as np
# 함수에 필요한 매개변수는 필요한 경우 찾아서 사용할 것
np.mean() # 평균
np.median() # 중간값
np.corrcoef() # 피어슨 상관계수
np.sum() # 합계
np.sort() # 정렬, 내부 매개변수에 따라 다른 형태의 정렬이 가능
## 등등 많은 함수가 존재한다.