공부할 내용

1. 조건문

2. 반복문

3. 반복문 중간에 나오기

4. 함수

5. 파이썬 클래스

 

수업 내용 (필기)

R

if 조건문

if 안에 조건을 써서 진행하는 형태

if ( ) {
...
}

else if () {
...
}

else if {
}

else {...}

 

뭐 이런 식이라고 함. 

 

%% : 나누기

cat

\n : 다음 줄로~

R의 논리연산자와 비교연산자

연산자 사용 예
< 작은 5<4는 F, 4<4는 F
> 5>4는 T, 4>4는 F
<= 같거나 작은 5<=4는 F, 4<=4는 T
>= 같거나 큰 5>=4는 T, 4>=4는 T
== 같은 5==4는 F, 4==4는 T
 != 같지 않은 5!=4는 T, 4!=4는 F
& 원소별 AND 각각의 원소별 비교를 하여 둘 다 T일 때만 T
a <- c(T,F,T,F)
a & T 의 결과는 T,F,T,F
&& AND 첫 번째 원소만 비교
a && T 는 a의 첫 번째 원소가 T이므로 결과는 T
| 원소별 OR 각각의 원소별 비교를 하여 둘 다 F일 때만 F
위의 a에서 a | T의 결과는 T,T,T,T
|| OR 첫 번째 원소만 비교
a || T는 a의 첫 번째 원소가 T이므로 결과는 T
! NOT(부정) !(5==5)의 결과는 F

 

Python의 조건문

##예제
def if_test1(x) :
  if(x % 2 == 0) :
    print("x는 짝수입니다")
  else :
    if(x % 2 ==1) :
      print("x는 홀수입니다")
    else:
      print("x는 자연수가 아닙니다")

if_test1(100)
else:
	if
# = elif

 

 

R 반복문

for문

 

while문

어떤 조건인 경우에만 작업을 하라.

while(x<=10)

 

Python 반복문

 

파이썬의 객체지향성

절차 중심 프로그래밍

  • 데이터를 입력해서 처리 순서(절차)를 지정하여 프로그래밍
  • 언어 : 포트란, C-언어
  • 프로그래밍이 방대해지면 효율성이 떨어짐

객체 지향 프로그래밍

  • 소프트웨어 생산성을 높이기 위해 부분만 고칠 수 있도록 한 것 (aka 공장 부품)
  • object oriented programing
  • 객체 = 속성과 기능을 가지고 있음
  • 객체를 만드는 설계도 = 클래스 (함수를 만든다 = 클래스를 만든다)
  • 언어 : C++, java, Python
  • 클래스
    • 속성 (변수)
    • 메소드(기능, 함수 def)

 


참고 자료

- 방송통신대학교 통계 데이터학과 수업

- 패스트캠퍼스 한 번에 끝내는 데이터 분석 툴 초격차 패키지 online (이거 없었음 정말... 생각하기도 싫군 이걸로 다시 공부하러 갑니다...)

자료형

type()

# int 정수형

# float 실수형

# str 문자

 

리스트

print() #출력
len() #길이
a[0:2] #a의 0~2까지의 값을 가져오기
a[1:] #a의 1부터 끝까지 값
a[:3] #a의 0~2까지의 값
a[:-1] #a의 마지막값 전까지 값 가져오기
a[:-2] #a의 마지막 두번째 전까지 값 가져오기

 

파이썬 딕셔너리 Dictionary

: key 와 value를 한 쌍으로 저장

you = {'height' : 120, 'weight' : 30} #배열, key로 저장하는 방법
you['height'] #120
you['weight'] #30
you['age']=10 #age key 값 추가

 

import pandas as pd
import numpy as np

#Create Dictionary of series
d = {'Name':pd.Series(['Tom', 'James', 'Ricky', 'Vin']),
	'Age' :pd.Series ([25,26,27,28]),
	'Rating' :pd.Series ([4.23, 3.24, 3.98, 2.56])}

#Create a DataFrame
df = pd.DataFrame(d)
print(df)

#DataFrame이 잘 들어갔는지 확인
df.head() #df의 최상단부터 5번째 행 출력
df.tail() #df의 최하단부터 5번째 행 출력

 

더보기

실행 결과

DataFrame 결과 잘 나옴

이진법 bool

True, False 를 지정해서 결과 실행 가능

 

if 문

hungry = True
if hungry : 
  print("I'm hungry")

if hungry : 

    print("I'm hungry")

# 메모장에서 치면 print 앞에 space 4칸을 띄운다.

 

else

hungry = Flase
if hungry : 
  print("I'm hungry")
else :
  print("I'm not hungry")
  print("I'm sleepy")

 

for 문 (반복문)

for i in [1,2,3]:
  print(i)

 

sum = 0
for i in range(10): #range(10)은 0 to 10이 아니라 0 to 9, 10번째까지의 범위니까!
  sum = sum+i #반복이 되면 sum은 이전 값이 추가되어서 계속 더해지게 됨 (루핑)

print(sum)

 

함수 function

def. 사용 (define)

def hello():  ##hello 함수 정의
  print("Hello World")
  print("Welcome to Python class!")

hello()

 

이런 def 함수를 여러개 사용해서 class를 만들어 사용

 

Class 클래스

  • 파이썬으로 모듈을 만든다고 할 때 = 클래스를 만든다고 함
  • 인스턴스를 만들면 인스턴스의 함수인 메서드 (method)를 수행하라고 하는 것
  • m이라는 인스턴스의 메서드를 수행할 때는 .점을 쓴다.
class Man:
  def __init__(self, name): #초기화
    print("initialized !")
  def hello(self):
    print("Hello" + self.name + " !")
  def goodbye(self):
    print("Good-bye" + self.name + " !")

m = Man("David") #m=인스턴스, 객체

 

matplotlib

싸인 함수 그리기

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0,6,0.1)
y = np.sin(x)
plt.plot(x,y)
plt.show()

y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x,y1, label='sin')
plt.plot(x,y2, linestyle='-', label='cos')
plt.xlabel('x-axis')
plt.ylabel('y-axis')
plt.title('sin & cos')
plt.legend() #범례
plt.show()

 

 

(이런걸 프로그램으로 만들었다면 File > Open 하면 프로그램이 나오고 이걸 배치로 run 수행할 수도 있음)

 

수업노트

  • R은 1부터 시작하지만 파이썬은 0부터 시작한다.
  • 파이썬에서는 항상 콜론을 쓴다.

수업

  • 방통대 파이썬과 R - 3강. 파이썬 기초(보충)

+ Recent posts