본문 바로가기
Python

파이썬 기초 (1) - 변수, 배열, 그래프

by 아짱이아빠 2022. 3. 9. 21:19
반응형

앞으로 3부에 걸쳐서 파이썬의 기초적인 기능에 대해 정리해 보려고 한다.

 

파이썬의 기본적인 문법이나 기능에 대해서는 상세히 정리된 책도 많고 블로그도 많은데, 여기서는 기본적인 것에 대해 아주 간략히 정리하고 몇 가지 예제를 풀면서 파이썬의 기본적인 기능 활용법에 대해 알아본다.

 

[변수(Variable)]

아래는 변수 x에 10을 넣고 이를 제곱한 것이다. 그 결과는 당연히 100이다.

x = 10

x **2

 

아래는 조금 다르게 활용한 예이다.

x = 'ca{}t'.format('s')

변수 x에 문자를 넣는데 .format 함수를 사용하고 중괄호 {}에 문자 ‘s’가 들어가게 된다.

그래서 x의 출력 결과는 은 ‘cast’ 가 된다.

이를 이용하면 반복적인 작업을 수월하게 할 수 있다.

 

다음의 예도 위와 유사하다.

age = 30.23847279379825
x = 'I am {} years old'.format(age)

x의 출력은 예상하다시피 ‘I am 30.23847279379825 years old’이다.

여기서 age를 소수점 자리 두 자리까지만 표현하고 싶다면 아래와 같이 수정한다.

x = 'I am {:.2f} years old'.format(age)

소수점 없이 정수만 표현하려면 ‘:. 0f’를 쓰면 된다.

 

[리스트(List)]

리스트는 아래와 같이 대괄호 []를 통해 정의하며 문자는 ‘ ’로 정의할 수 있고 아래처럼 리스트 안에 또 리스트를 정의할 수 있다.

x = [1,3,5,7, 'cat', [1,2]]

리스트는 데이터 맨 앞이 0번부터 시작한다.

그러므로 x[0]은 1이고 x[4]는 ‘cat’이다.

리스트 내의 리스트에 대해서도 값을 호출할 수 있는데 x[5][1] 하면 결과는 2가 출력된다.

리스트는 데이터를 변경하거나 추가할 수 있다.

그래서 두 번째 데이터인 3을 2로 바꾸는 것은 x[1]=2과 같이 하면 된다.

리스트는 ‘. append’ 함수를 사용하여 데이터를 추가할 수 있다.

예를 들어 x.append(9)를 하면 리스트의 마지막에 9가 추가되어 결과는 [1,2,5,7,’cat’, [1,2],9]가 된다.

 

[튜플(Tuple)]

튜플은 소괄호 ()로 데이터를 정의한다. 

x = (1,3,5,7,'dog',[1,2])

리스트와 튜플은 비슷하다.

그러나 가장 큰 차이점은 튜플은 데이터를 바꿀 수 없다는 것이다.

그래서 x[1]=2를 통해 튜플 내의 두 번째 데이터인 3을 2로 바꾸려고 하면 아래와 같은 에러가 발생한다.

 

TypeError: 'tuple' object does not support item assignment



[딕셔너리(Dictionary)]

딕셔너리는 중괄호 {}로 정의한다.

x = {'dog':'animal', 'cat':6}

딕셔너리는 키 값을 갖는다는 특징이 있다.

위의 예에서 키 값은 dog과 cat이고 각각에 ‘animal’이란 문자와 숫자 6을 정의한 것이다.

그래서 이 키 값을 호출하여 해당하는 값을 출력할 수 있다.

x[‘dog’]을 하면 결과는 ‘animal’이 된다.



[배열(Array)]

배열은 데이터 분석이나 수학적 계산에서 많이 사용되는 데이터 타입이다.

먼저 파이썬에서는 numpy라는 모듈을 불러와서 배열을 사용한다.

import numpy as np

위는 numpy 모듈을 불러오고 이를 np란 이름을 부여한다는 의미이다.

그래서 numpy 모듈 안의 함수를 사용할 때에 전체 이름 대신 np로 짧게 불러 사용할 수 있다.

 

아래는 1,5,8,10의 숫자를 어레이로 만드는 것이다.

x = np.array([1,5,8,10])

이 어레이 데이터를 앞에서의 리스트와 비교했을 때의 특성 차이는 다음과 같은 것이 있다.

리스트 x에 2를 곱하면 리스트는 데이터를 두 번 반복하는 결과가 되는 반면에 어레이는 각 인자에 2를 곱한 결과가 된다.

즉, 리스트는 결과가 [1, 2, 5, 7, 'cat', [1, 2], 9, 1, 2, 5, 7, 'cat', [1, 2], 9]이며,

어레이는 결과가 array([ 2, 10, 16, 20]) 이 된다.

 

당연히 곱하기뿐만 아니라 다른 연산도 위와 같이 어레이에는 각 어레이 인자에 계산이 반영된다.

 

많은 양의 어레이 데이터를 만드는 것은 다음과 같은 방법이 있다.

x = np.linspace(0, 20, 100)

위의 의미는 0부터 20까지를 100개의 데이터로 만든다는 의미이며 그래서 출력 결과는 다음과 같다.

0부터 20까지 100개의 어레이 데이터 생성 결과
(0부터 20까지 100개의 어레이 데이터 생성 결과)

또는 어레이는 다음과 같이 arange 함수를 사용하여 만들 수도 있다.

x=np.arange(0,20,2)

앞에서의 linspace 함수와 조금 다른 부분은 linspace는 처음과 끝의 간격을 원하는 개수만큼 쪼개는 의미라면 arange 함수는 처음과 끝 간의 원하는 스텝을 정한다.

위의 결과는 다음과 같다.

array([ 0,  2,  4,  6,  8, 10, 12, 14, 16, 18])

 

[plot]

다음은 계산 결과나 데이터를 그래프로 시각화하는 것이다.

많이 사용하는 모듈은 matplotlib이 있으며 아래와 같이 모듈을 불러온다.

import matplotlib.pyplot as plt

다음은 그래프를 그리는 기본적인 예이다.

x = np.linspace(0,1,10)
y = x**2
plt.plot(x,y)

기본적인 2D 그래프는 x와 y가 필요한데 이 예제는 0부터 1까지 10개의 어레이로 만들어 x가 되고 y는 이 x의 제곱으로 만든다.

그래서 plt.plot을 통해 그래프로 그리면 아래와 같다.

기본적인 y=x**2의 그래프
(기본적인 y=x**2의 그래프)

여기서 조금 더 그래프를 꾸며보면, 아래와 같이 그래프의 모양을 바꾸고 각 축의 라벨을 추가할 수 있다.

plt.plot(x,y,'ro--')
plt.xlabel('x', fontsize=15)
plt.ylabel('y', fontsize=15)

결과는 다음과 같다.

y=x**2 그래프 꾸미기
(y=x**2 그래프 꾸미기)

 

이 외에도 그래프 선의 두께를 바꾸거나 legend를 추가하는 등이 다양한 기능이 있는데 이는 인터넷에서 쉽게 확인할 수 있다.

 

다음 2부에서는 기본적인 반복문과 if 문에 대해 정리하겠다.

 

반응형

댓글