검색
검색
공개 노트 검색
회원가입로그인

[이솦] 파이선으로 배우는 AI 기초 04

요약
  • 딥러닝에서는 행렬 연산이 중요하며 numpy 라이브러리를 통해 사칙연산을 실행합니다.
  • 파이썬의 다양한 자료형(기본 자료형 및 컨테이너 자료형)과 연산자를 학습합니다.
  • //와 % 연산자의 중요성과 그 활용 예시를 파이썬 코드로 설명합니다.

이솦 | EBS 소프트웨어·인공지능 교육

딥 러닝에서는 계산을 하는데, 그중 행렬 연산을 가장 많이 하며, 딥러닝 학습과정에서 가중치를 구하는 연산이기 때문입니다.

행렬 연산을 하려면 사칙연산을 해야되고, numpy라는 라이브러리를 이용하는 방법을 알아야만 합니다.

변수

값을 저장하는 공간, 숫자 외에도 다양한 종류의 자요를 저장하며, 종류와 특징에 따라서 구분할수 있습니다 . 이때 이 종류와 특징을 자료형 =data type 라고 합니다 .

기본 자료형: 하나의 데이터 만을 넣을 수 있음

container: 여러개의 데이터를 넣을 수 있음

[기본 자료형]

숫자 (Number)숫자로 이루어진 자료이다. 사칙연산을 처리할 수 있다.
문자열 (String)• 문자로 이루어진 자료이다. 큰따옴표("")나 작은따옴표"로묶어서 사용한다
불린 (Boolean)• 참과 거짓으로 저장되는 자료이다. • True 또는 False로 표현한다.

[컨테이너 자료형]

리스트 (list)순서가 유의하며, 여러 가지 자료의 목록이다. ㆍ대괄호[]로 묶어서 표현한다.
튜플 (Tuple)-리스트처럼 여러 가지 자료의 목록이지만, 리스트와 달리 값을 수정할수 없다. 소괄호 ()로 묶어서 표현한다
딕셔너리 (Dictionary)- 키(key)를 가진 자료의 목록이다.\
- { }로 묶어서 {키:값}처럼 쌍으로 표현한다.

활용 목적에 따라서 다르기 때문에 자료 형태를 아는 것이 중요하다.

숫자형자료: 정수, 실수로 구분 (정수는 숫자, 실수는 소수점 있는 숫자) 참고로 0은 정수이다. 실수 0은 0.0 으로 표현

정수에서 정수를 빼면 정수로 지정, 정수에서 실수를 빼거나. 실수에서 정수를 빼면 실수 형태로 지정

연산자

숫자형은 계산을 위한 것으로 정수와 실수 및 사칙연산 기호를 사용한다.

종류설명결과
+더하기5+27
-빼기5-23
*곱하기5*210
/나누기5/22.5
%나머지5%23
//5//22
**제곱5**225

//은 연산할때 소수점을 버리고 정수부분만 연산한다

파이썬에서는 글자의 연산도 가능하다.

print('국밥이는 배고파')
str1='국밥이는'
str2='배고파'
print(str1+str2)

이때 +는 문자를 연결해 주는 방식으로 처리하며 이런 연결을 contectnation 이라고 부른다

str1*5는 str1의 글자를 5번 반복해준다.

숫자를 따옴표를 쓰면 문자열로 취급도 가능하다.

str3='25'
str4='35'
print(str3+str4)  

이렇게 하면 결과가 2535가 나온다.

문자열과 숫자는 곱하기는 되지만 더하기는 불가능하다. 다만 숫자를 str( )안에 넣어서 하는건 가능하다.

불린

불린은 True와 False로만 가능하다.

종류설명결과
<값이 작다.5<2False
>값이 크다.5>2True
<=값이 작거나 같다5<=2False
>=값이 크거나 같다5>=2True
==두 값이 같다.5==2False
!=두 값이 다르다5!=2True

a=(10>5) 는 True

b=(10<5) 는 False 가 들어가 있다.

a=(10>5)
b=(10<5)
print(a,type(a))

type은 종류가 무엇언지를 확인해 주는 함수 이며

True <class 'bool'> 으로 나와 불린의 약자 bool이라고 나온다.

불린 비교 연산자

불린형에서는 비교 연산자를 같이 사용한다.

종류설명결과
and・조건이 모두 True일 때 True 반환, 조건 중 하나라도 False이면 False 반환5> 2 and 7>4True
or・조건 중 하나라도 True이면 Ture, 반환 조건이 모두 False일 때, false 반환5 <2 or 7 <4False
not• 논리값의 반대 값 반환 • True → False, False → True5>2False

딥러닝에서는 어떤 입력 값에 임의의 가중치를 곱해주는 연산

곱하기 연산을 할때 많은 변수를 처리하면 행렬 연산을 사용한다.

연산할때 큰 행렬을 만들어서 계산하며, 중간에 결과를 저장해야 될 변수들이 매우 많고 변수를 많이 사용해야함. 곱하기 연산을 주로 하지만 많은 변수를 사용하게 된다.

실습

정수를 입력받아 5로 나누고, 정수 몫은 얼마이고 나머지는 얼마인지는 알려주는 계산기,

몫을 알려주는 연산자와 나머지는 알려주는 연산자를 기억해보자.

a= int(input('숫자를 입력하세요'))
print('%d를 5로 나눈 몫은 %d이고 나머지는 %d이다' % (a, a//5, a%5))

잘 작동한다.

이번엔 지난번과 연결해서 복습 할것이 없다.

다만 chatgpt에 왜 %와 //연산자가 중요한지 물어보자.

파이썬에서 머신러닝 코딩을 할 때, 연산자 `//`와 `%`는 다양한 이유로 중요합니다. 각 연산자의 사용 목적을 이해하면 그 중요성을 알 수 있습니다.

1. **정수 나눗셈 연산자 (`//`)**:

  • `//` 연산자는 두 숫자를 나눌 때 소수점 이하를 버리고 정수 부분만을 반환합니다.

  • 이는 배열 인덱싱, 데이터 샘플링, 버킷팅, 짝수/홀수 구분 등에서 유용합니다.

  • 예를 들어, 데이터 세트를 고르게 분할하거나 특정 간격으로 데이터를 그룹화할 때 사용될 수 있습니다.

```python

total_samples = 100

samples_per_group = 10

num_groups = total_samples // samples_per_group

print(num_groups) # 출력: 10

```

2. **모듈로 연산자 (`%`)**:

  • `%` 연산자는 두 숫자를 나눌 때 나머지를 반환합니다.

  • 이는 주기적인 작업, 순환 구조, 특정 간격의 데이터 선택 등에 유용합니다.

  • 예를 들어, 교차 검증에서 특정 간격으로 데이터를 선택하거나, 주기적으로 발생하는 이벤트를 다룰 때 사용할 수 있습니다.

```python

for i in range(10):

   if i % 2 == 0:

       print(f"{i} is even")  # 출력: 0, 2, 4, 6, 8

```

**실제 예시**:

- **데이터 샘플링**: 큰 데이터 세트에서 특정 간격으로 샘플을 추출할 때 `%`를 사용하여 일정한 간격으로 데이터를 선택할 수 있습니다.

```python

data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

sample = [x for i, x in enumerate(data) if i % 2 == 0]

print(sample) # 출력: [1, 3, 5, 7, 9]

```

- **데이터 분할**: 데이터를 고르게 분할하여 여러 그룹으로 나눌 때 `//`를 사용할 수 있습니다.

```python

total_data = 50

group_size = 5

num_groups = total_data // group_size

print(num_groups) # 출력: 10

```

이와 같이 `//`와 `%` 연산자는 데이터의 분할, 샘플링, 인덱싱 등 다양한 머신러닝 관련 작업에서 매우 유용하게 사용될 수 있습니다. 이러한 연산자를 잘 활용하면 코드의 효율성과 가독성을 높일 수 있습니다.

조회수 : 33
heart
공유하기
카카오로 공유하기
페이스북 공유하기
트위터로 공유하기
url 복사하기
T
페이지 기반 대답
AI Chat