본문 바로가기
자료분석 및 코딩/파이썬

[파이썬] 3-2. 기본문법 - 기초연산(제곱, 루트), 인덱스, 주석

by 아다콘다 2023. 3. 27.

 자료분석을 목적으로 파이썬을 사용한다면, 가장 기본이 되는 것이 계산 및 연산이다. 간단한 계산들은 별도의 라이브러리를 설치하지고 내장 함수로만으로도 가능하다. 그래서 오늘은 파이썬의 기초연산 명령어와 연산 및 자료처리를 위해 필요한 개념인 인덱스에 대해 알아보겠다.

 

1. 기본연산

 기본적인 사칙연산은 키보드에 있는 그대로 쓰면되고, 이는 다른 개발언어에서도 동일할텐데 아래와 같다.

  • 더하기 : +
  • 빼기 : -
  • 곱하기 : *
  • 나누기 : /
  • 제곱 : **
  • 제곱근(루트) : **(1/n)

파이썬에서의 기본 연산 문법
파이썬에서의 기본 연산 문법

 제곱은 **로 구한다. 이제곱은 **2, 세제곱은 **3, 네제곱은 **4처럼 계산하면 된다. 위 사진처럼 3의 이제곱은 3**2로 구하고, 그 값인 9가 출력된다. 루트 역시 반대로 구하면 된다. 사실 제곱근도 루트가 아니라 제곱으로 표현하면 이제곱근은 1/2제곱, 3제곱근은 1/3제곱이 된다. 따라서 제곱근(루트)도 **(1/2) 처럼 구하면 된다. 여기서 굉장히 자주하는 실수가 있는데 바로 괄호()를 씌워야 한다는 점이다. 괄호를 빼먹게되면 일제곱 나누기2가 되서 이상한 값이 나올 수 있다. 그러니 반드시 괄호를 씌우거나 아예 소수점으로 (1/2 = 0.5) 0.5와 같이 입력해야 한다.

  • 16**(1/2) = 4     ≠   16**1/2 = 8

2. 통계함수 및 기타

 가장 기본적인 통계인 합계, 최대값, 최소값도 기본함수로 내장되어 있고, 반올림, 나머지, 절대값등의 함수도 내장되어 있다. 

  • sum() : 데이터(행렬)의 합계
  • max() : 데이터(행렬)의 최대값
  • min() :데이터(행렬)의 최소값
  • round(a,b) : a라는 숫자를 반올림하여 소수점 b자리까지 나타냄
  • divmod(a,b) : a라는 숫자를 b로 나눈 몫과 나머지 출력
  • abs() : 절대값
  • len() : 데이터 길이

파이썬 나누기, 나머지, 반올림

 sum, max, min은 괄호안에 숫자행렬을 입력하면 바로 통계값이 나오며, abs는 숫자행렬을 절대값으로 변환한 행렬을 반환한다.  round, divmod는 입력한 두 숫자로 연산한 결과를 출력하며 len은 행렬의 길이를 반환한다. 모두 너무 자주쓰는 함수이며, len은 특히 나중에 알아볼 반복문을 수행할 때, 자주 사용한다. 자연과학 및 해양쪽에서도 통계지표를 자주 사용하는데 numpy나 math 같은 라이브러리를 사용하여 간단하게 통계값을 뽑아낼 수 있지만 위 연산만으로도 수식을 작성해 계산할 수 있다. 가장 많이 쓰이는 지표중에 하나인 RMSE를 예를 들어보면, sklearn의 mean_squared_error 라이브러리로 계산가능하지만 위 연산함수만으로도 가능하다. RMSE는 편차 제곱의 평균의 제곱근이므로 (sum((A-B)**2)/len(A)))**0.5로 표현할 수 있다.

파이썬 RMSE 구하기
파이썬 RMSE 구하기

 3. 인데스 (index) 

 인덱스란 어떤 데이터 또는 행렬에서 특정 값 또는 특정 데이터의 위치를 의미한다. 예를 들어, 0시부터 23시까지의 시계열 데이터가 있다면 이 데이터는 0~23까지의 24사이즈의 행렬인데, 이 중 9시 데이터는 9번째 데이터이므로 인덱스는 9가 된다. 인덱스의 개념이 중요한 이유는 방대한 양의 데이터 중에서 특정 값을 뽑아내거나, 특정 영역의 데이터를 뽑아내서 분석을 하는 경우가 매우 많기 때문이다. 예를 들어 8월의 강수량을 분석하고 싶은데 1년치의 데이터를 가지고 있다면 8월 한달간의 인덱스를 찾아내서 데이터를 분석해야한다. 따라서 이 인덱스의 개념을 잘 알고 넘어가야 한다.

파이썬 인덱스의 개념
파이썬 인덱스의 개념

 

 위와 같은 2012년의 해양관측부이 데이터(Tx)가 있다. 이 데이터 중 2012년 1월 1일 9시의 최대파고는 9번 칼럼의 10번째 위치이다. 따라서 인덱스는 10이 된다. 그러므로 이 데이터는 Tx[9][10] 으로 뽑아낼 수 있다. 인덱스는 범위로도 지정가능하다. 같은 날의 9시부터 13시까지의 파고는 9번 칼럼의 10번부터 14번까지의 데이터이다. 범위를 나타낼 때는 시작위치와 종료위치를:로 나타내고 종료 위치는 몇번째 데이터인지로 나타낸다. 따라서 시작위치는 10번 데이터이므로 10이 되고, 종료위치인 14번 데이터는 15번째 데이터이므로 10:15와 같이 나타낼 수 있다. 범위 인덱스를 지정할 때 이 종료위치가 상당히 헷갈리므로 주의해야하며, 종료번호+1로 기억해둬도 무방하다.

파이썬 인덱스 활용 예시
파이썬 인덱스 활용 예시

 

 4. 주석

 주석은 코드/스크립트에서 해당 명령을 수행하지 않는다는 의미이다. 파이썬에서는 #으로 주석표시를 하며, 사용하는 목적은 다양하다. 코드 중간중간에 스크립트 설명이나 사용법을 적기도 하고, 영역을 나누기 위해 사용하기도 하며, 입력 변수만 상이한 동일한 명령을 할 때 on/off 기능으로 활용하기도 한다. 명령문 맨 앞에 #을 입력하거나, ctrl+1로 커서위치 명령줄의 주석처리를 할 수도 있다(스파이더). 또한 여러줄의 주석처리도 가능한데 블럭(마우스드래그 또는 쉬프트)을 씌운 후 ctrl+1을 누르면 된다.

파이썬 주석 사용 예시
파이썬 주석 사용 예시

 또한, 구간을 주석할 때 """로 주석을 달 수 있다. 주석처리를 시작하려는 행위에 쌍따옴표 세개(""")를 입력하고 주석처리가 끝난 행 다음에도 """를 입력하면 """ ~ """ 사이의 구간을 주석처리 할 수 있다.

파이싼 구간 주석 예시
파이싼 구간 주석 예시

다음에는 기본문법의 마지막으로 반복문과 조건문인 for와 if에 대해 알아보도록 하겠다.

반응형