[인공지능]2.파이썬 기초

1. 변수

1) 타입 알아보기

s = 'hello'
type(s) #str

2) 변수형 변경

a = '10'
type(a) #str
int(a) # 10

2. 배열

1) 배열 생성

list = [1, 3, 5, 7, 9, 11, 13, 15] 
list #[1, 3, 5, 7, 9, 11, 13, 15] 

2) 배열 길이

list = [1, 3, 5, 7, 9, 11, 13, 15] 
len(list) #8

3) 배열 슬라이싱(slicing)

list = [1, 3, 5, 7, 9, 11, 13, 15] 

list[2:6] #[5, 7, 9, 11] #index 2~5까지 가져옴
list[2:] #index 2 ~ 끝까지, [5, 7, 9, 11, 13, 15]
list[:5] #index 0~4까지 가져옴, [1, 3, 5, 7, 9]
list[:-1] #배열의 첫번째 원소에서 마지막 원소 전까지 [1, 3, 5, 7, 9, 11, 13]

3. 넘파이

  • 배열이나 행렬에 대한 계산을 위한 함수를 모아놓은 라이브러리
import numpy as np

1) 넘파이 배열

  • array() 사용하여 배열 생성 가능 : 생성할 배열의 값을 []형태로 매개변수에 넣어주면 됨
narray = np.array([1,3,5,7,9])

1️⃣ 배열의 형태

  • narray.shape : 넘파이 배열의 형태를 보여달라
narray.shape #(5,)
  • 배열에 5개의 원소가 있다는 의미

2) 2차원 배열(matrix)

  • 행렬(matrix) : 가로 = 행, 세로 = 열
darray = np.array([[1, 3, 5, 7, 9], [2, 4, 6, 8, 10]]) #2x5 행렬 생성
darray.shape #array(2,5), 가로가 2, 세로가 5인 행렬

1️⃣ 배열 형태 바꾸기

  • reshape() : 배열 형태 바꾸기
d52 = darray.reshape(5,2) #5x2 행렬로 변경
#array([[ 1, 3],
#     [ 5, 7],
#     [ 9, 2],
#     [ 4, 6],
#     [ 8, 10]])
  • 2차원 ➡️ 1차원 배열로 변경 : reshape(원소의 개수, )
d1 = darray.reshape(10,) #가로가 10인 형태의 1차원 배열로 변경
# array([ 1, 3, 5, 7, 9, 2, 4, 6, 8, 10])

3) 넘파이 함수

1️⃣ 0으로만 이루어진 배열 생성

  • zeros() : 모든 원소가 0(실수형)인 배열 생성
zero = np.zeros((2,5))
#array([[0., 0., 0., 0., 0.],
#     [0., 0., 0., 0., 0.]])

2️⃣ 1로만 이루어진 배열 생성

  • ones() : 모든 원소가 1(실수형)인 배열 생성
one = np.ones((2,5))
#array([[1., 1., 1., 1., 1.],
#     [1., 1., 1., 1., 1.]])

3️⃣ 무작위 숫자로 이루어진 배열 생성

  • 넘파이의 random 라이브러리 사용

1) rand()

  • 0부터 1사이의 무작위 값을 균일한 확률 분포로 생성하는 함수
r = np.random.rand(3) 
#[0.33176596 0.76271979 0.70570591]
import numpy as np
import matplotlib.pyplot as plt
r = np.random.rand(1000)
plt.hist(r)
plt.show()

2) normal()

  • 정규 분포(가우시안 분포)로 값 생성
  • 평균과 표준편차를 정해줄 수 있음
rn = np.random.normal(0,1,3)
# 평균 0, 표준 편차 1인 정규분포로 무작위 값 3개 추출
#array([-1.47268374, -0.12373834, -0.20537594])
  • 정규 분포 : 일반적인 분포. 평균값을 중심으로 좌우로 멀어질수록 x축에 무한히 가까워지는 종 모양 형태
rn = np.random.normal(0,1,1000)
plt.hist(rn)
plt.show()

3) randint()

  • 특정한 값 사이에 무작위 숫자(정수) 생성
n = np.random.randint(1, 100, 5) #1~100 사이의 숫자 중 5개의 무작위 정수값 추출
#array([92, 3, 93, 68, 18])

4) seed()

  • 무작위 수를 만드는 알고리즘에서 일정한 기준 역할을 함
np.random.seed(0)
np.random.rand(3)#[0.5488135 0.71518937 0.60276338]
np.random.seed(0)
np.random.rand(3)#[0.5488135 0.71518937 0.60276338]
  • 동일한 무작위 수 생성 가능

4. 반복문

1) for문

구조

for 변수 in 배열 :
	반복할 내용

ex)

ten = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] 
for i in ten:
	print(i)

2) range()

  • 특정 구간의 숫자를 만들어주는 함수
r = range(10) #10개의 숫자를 만듦 
#range(0, 10)
list(r) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

1️⃣ range(시작 숫자, 끝 숫자, 건너뛰기)

five1 = range(1,6,1)
list(five1) #[1, 2, 3, 4, 5]
ten = range(9, -1, -1) #9부터 -1전까지 생성
list(ten) #[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

2️⃣ for문 속 range()

for i in range(1,6):
	print(i)

5. 조건문

1) if문

구조

if 조건:
	명령문

ex)

n = 15
if n > 10:
	print(n)

2) if-else문

구조

if 조건:
	명령문
else:
	명령문

ex)

n = 15
if n % 2 == 0:
	print('짝수')
else:
	print('홀수')

3) 함수 생성

구조

def 함수명(매개변수):
	함수내용

ex)

def num(n):
	if n % 2 == 0:
		print('짝수')
	else:
		print('홀수')
num(10) #'짝수'

좋은 웹페이지 즐겨찾기