(방송통신대 파이썬과R 출석수업대체과제물)파이썬과 R을 이용하여 다음 연습문제를 수행하고, 화면결과를 캡쳐해서 레포트를 작성하시오
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

(방송통신대 파이썬과R 출석수업대체과제물)파이썬과 R을 이용하여 다음 연습문제를 수행하고, 화면결과를 캡쳐해서 레포트를 작성하시오에 대한 보고서 자료입니다.

목차

※ 파이썬과 R을 이용하여 다음 연습문제를 수행하고, 화면결과를 캡쳐해서 레포트를 작성하시오. (레포트는 pdf파일로 제출하기 바람)

1. 연습문제 1장(19쪽) 3번
2. 연습문제 2장(39쪽) 7번, 8번
3. 연습문제 3장(73쪽) 1번, 2번
4. 연습문제 4장(100쪽) 7번, 8번, 9번
5. 연습문제 5장(138쪽) 1번, 2번
6. 연습문제 6장(184쪽) 1번

본문내용

스트나 튜플처럼 내부 원소의 값을 변경할 수 있는 자료형은 key가 될 수 없다.
4. 연습문제 4장(100쪽) 7번, 8번, 9번
(연습문제 7번) 주당 근무시간이 40시간 이내면 시간당 임금이 1만 원이고 40시간이 초과되는 부분 에 대해서는 1.5배를 지급하는 경우 주당 근무시간을 입력받으면 출력으로 임금이 계산되는 함수 mywage를 파이썬으로 작성하시오.
(연습문제 8번) 주당 근무시간이 40시간 이내면 시간당 임금이 1만 원이고 40시간이 초과되는 부분 에 대해서는 1.5배를 지급하는 경우 주당 근무시간을 입력받으면 출력으로 임금이 계산함수 mywage를 R로 작성하시오 (이때 출력은 list 함수를 사용한다).
(연습문제 9번) 다음은 R에서 example 함수문을 만들고 실행한 예이다. 파이썬에서 이와 같은 기능을 실행하는 클래스를 만들고, 실행 결과를 보이시오.
example <- function(name)
{
a = paste(\"Hello\", name, \"!\")
b = paste(\"Good-bye\", name, \"!\")
result <- list(a=a, b=b)
return(result)
}
> name <- \"David\"
> aaa <- example(name)
> aaa$a
[1] \"Hello David !\"
> aaa$b
[1] \"Good-bye David !\"
파이썬에서 클래스 이름은 대문자를 사용하는 것이 관례이므로 Example이라는 클래스를 생성했다. 함수명이 __init__이면 클래스로 객체를 생성할 때 가장 먼저 실행되는 초기화 함수 또는 생성자라는 의미가 된다. 이때 self는 파이썬에서 생성된 객체를 관례적으로 가리키는 키워드이다. C++의 this 키워드와 유사하다고 볼 수 있다. 객체 생성 시 인자로 전달받은 name은 생성된 객체의 속성 a와 b의 값을 초기화하는데 사용된다.
5. 연습문제 5장(138쪽) 1번, 2번
(연습문제 1번) 자연수 n과 실수 p를 명령어 줄에서 입력받아 1부터 n까지의 p승의 합 을 계산 하는 R 함수를 작성하시오.
readline()함수를 통해 입력받은 값은 모두 문자열로 취급되므로 as.numeric()함수로 숫자형으로 변화시켜야 한다.
(연습문제 2번) 자연수 n과 실수 p를 명령어 줄에서 입력받아 1부터 n까지의 p승의 합 을 계산하는 파이썬 함수를 작성하시오 (참고: 숫자를 다루는 함수이므로 numpy를 사용하는 것이 유리하다).
위 코드에서 방법 1은 수열의 일반항을 하나씩 구해 그 값들을 리스트에 담아서 이를 넘파이의 sum()메서드의 인자로 전달해 총합을 구한다. 방법 2의 ak()함수는 수열의 일반항 전체가 아닌 하나씩 반환하는 제너레이터를 생성해 반환하고(이때 return 대신 yield 키워드 사용함), sum_ak()함수는 이 제너레이터를 리스트로 변환시켜 넘파이의 sum()메서드에 전달해 총합을 구한다. 파이썬의 제너레이터 문법은 교재에 없으므로 이런 방법도 있음을 참고하면 좋겠다. 어떤 방법이든 가장 쉬운 방법이 최선의 선택일 것이다. 파이썬에서 input()함수로 받은 키보드 입력값은 모두 문자열로 취급하므로 정수문자는 int로, 실수문자는 float 클래스로 각각 변환시켜주어야 한다.
6. 연습문제 6장(184쪽) 1번
(연습문제 1번) [그림 6-1]의 데이터프레임 df와 dg를 대상으로 다음에 답하시오.
(1) df.loc[\'x\']의 클래스는 무엇인가?
판다스에서 데이터프레임을 검색한 결과는 시리즈 또는 데이터프레임이다. 특정 인덱스로 검색한 결과를 아래 그림에서처럼 type() 클래스를 사용해 확인해 보면 시리즈 클래스 즉, pandas.core.series.Series 이다.
(2) df.loc을 이용하여 제1행(\'x\'행)으로 이루어진 데이터프레임을 선택하려면 어떻게 해야 하는가?
df.loc[[\'x\']]처럼 인덱스를 리스트에 담고 검색하면 시리즈가 아닌 데이터프레임으로 추출된다.
(3) df를 이용하여 제1행(\'x\' 행)으로 이루어진 데이터프레임을 선택하려면 어떻게 해야 하는가?
df[\'x\':\'x\']처럼 슬라이싱하면 ‘x\'행만 데이터프레임으로 추출된다. df[\'x\':\'y\']로 하면 \'y\'행까지 추출된다.
(4) dg.iloc[0 : 2], dg.loc[0 : 2], dg[0 : 2]의 결과를 비교하고 그 이유를 설명하시오.
dg.iloc[0 : 2]에서 0과 2는 인덱스 값이 아니라 위치 순서 값을 의미하므로 0행과 1행이 추출된다. iloc에서 i는 implicit(암묵적)라는 의미로 볼 수 있다. 암묵적 인덱스와 명시적 인덱스의 차이라고 이해하면 된다. 데이터프레임 객체의 생성 시 인덱스의 지정 여부와 상관없이 데이터프레임은 내부적으로 암묵적 인덱스(0,1,2,....)의 위치 순서를 지정하고 있다. 암묵적 인덱스를 사용하면 슬라이싱의 종료점(2)은 추출되지 않는다.
dg.loc[0 : 2]는 명시적 인덱스를 사용하므로 dg에서 0행, 1행, 2행까지 추출된다.
dg[0 : 2]에서 슬라이싱 검색을 할 경우에도 위치 순서 즉, 암묵적 인덱스가 사용된다. 따라서 2행은 제외하고 0행과 1행이 추출된다.
(5) df.loc[:: -1], dg.loc[:: -1], df.loc[2 :: -1], dg.loc[2 :: -1]의 결과를 비교하고 그 이유를 설명하시오.
데이터프레임의 슬라이싱에서 증감값이 -1이면 슬라이싱은 맨 뒤에서부터 역방향으로 진행된다. 따라서 df.loc[:: -1]과 dg.loc[:: -1]의 결과는 원 값의 역순이 되는 데이터프레임이 생성된다. 그런데 df.loc[2 :: -1]의 경우 명시적 인덱스를 사용해야 하는데, df에서의 명시적 인덱스는 x, y, z뿐이다. 따라서 실행 결과는 TypeError라는 예외가 발생한다(에러 내용이 너무 길어 캡쳐 생략함). 반면 dg에는 2라는 명시적 인덱스가 있으므로 dg.loc[2 :: -1]의 결과는 명시적 인덱스 2에서 시작해 원본의 역순으로 정렬된 데이터프레임이 추출된다.
7. 참고문헌
심송용, 이윤동, 김성수(2020), 파이썬과R, 출판문화원.
  • 가격10,000
  • 페이지수11페이지
  • 등록일2021.10.16
  • 저작시기2021.10
  • 파일형식한글(hwp)
  • 자료번호#1157148
다운로드 장바구니