<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 2017년 2학기 공업수학 기말고사 시험지
이름
Step1:  넘파이 어레이
아래 모양의 어레이를 생성하기 위해 reshape 함수를 이용한다.
$$\left [ \begin{matrix} 1 & 3 \ 5 & 7 \ 9 & 11 \end{matrix} \right ]$$
Step2:  추가로 아래 코드를 실행하자.
Step3:  문제 1
(1) a의 값은 어떻게 변경되었는지 설명하라.
(2) 위와 같은 현상이 발생하는 이유를 설명하라.
(3) 위와 같은 현상을 피하기 위해서는 어떻게 해야 하는지 설명하라.
넘파이 어레이 인덱싱/슬라이싱
아래 코드로 생성된 어레이를 이용하는 문제이다.
Step4:  a 어레이를 이용하여 예를 들어 아래 모양의 어레이를 생성할 수 있다.
$$\left [ \begin{matrix} 20 & 22 \ 40 & 42 \end{matrix} \right ]$$
Step5:  문제 2
(1) a 어레이에 인덱싱과 슬라이싱을 이용하여 아래 모양의 어레이를 생성하라.
$$\left [ \begin{matrix} 20 & 21 & 22 \ 40 & 41 & 42 \end{matrix} \right ]$$
(2) a 어레이에 인덱싱과 슬라이싱을 이용하여 아래 모양의 어레이를 생성하라.
$$\left [ \begin{matrix} 5 & 15 & 25 & 35 & 45 & 55 \end{matrix} \right ]$$
```
.
```
(3) 마스크 인덱싱을 사용하여 아래 결과가 나오도록 하라.
array([ 0,  3, 12, 15, 21, 24, 30, 33, 42, 45, 51, 54])
```
.
```
정수 인덱싱
정수 인덱싱을 사용하여 아래 결과가 나오도록 할 수 있다.
array([ 12, 23, 34])
Step6:  (4) 정수 인덱싱을 사용하여 아래 모양의 어레이가 나오도록 하라.
$$\left [ \begin{matrix} 30 & 32 & 35 \ 50 & 52 & 55 \end{matrix} \right ]$$
```
.
```
데이터 분석
오늘 사용할 데이터는 다음과 같다.
미국 51개 주(State)별 담배(식물) 도매가격 및 판매일자
Step7:  ```
.
```
(2) 아래 코드를 설명하라.
Step8:  ```
.
```
(3) 아래 코드를 설명하라.
Step9:  ```
.
```
(4) 아래 코드를 설명하라.
Step10:  ```
.
```
(5) 아래 코드를 설명하라.
Step11:  ```
.
```
(6) 아래 코드를 설명하라.
Step12:  ```
.
```
(7) 아래 코드를 설명하라.
<ASSISTANT_TASK:>
Python Code:
from __future__ import division, print_function
import numpy as np
import pandas as pd
from datetime import datetime as dt
Explanation: 2017년 2학기 공업수학 기말고사 시험지
이름:
학번:
모듈 임포트
코드를 실행하기 위해 필요한 모듈들이다.
End of explanation
a = np.arange(1, 12, 2)
b = a.reshape(3,2)
b
Explanation: 넘파이 어레이
아래 모양의 어레이를 생성하기 위해 reshape 함수를 이용한다.
$$\left [ \begin{matrix} 1 & 3 \ 5 & 7 \ 9 & 11 \end{matrix} \right ]$$
End of explanation
b[2,1] = 3
Explanation: 추가로 아래 코드를 실행하자.
End of explanation
a = np.arange(6) + np.arange(0, 51, 10)[:, np.newaxis]
a
Explanation: 문제 1
(1) a의 값은 어떻게 변경되었는지 설명하라.
(2) 위와 같은 현상이 발생하는 이유를 설명하라.
(3) 위와 같은 현상을 피하기 위해서는 어떻게 해야 하는지 설명하라.
넘파이 어레이 인덱싱/슬라이싱
아래 코드로 생성된 어레이를 이용하는 문제이다.
End of explanation
a[2::2, :4:2]
Explanation: a 어레이를 이용하여 예를 들어 아래 모양의 어레이를 생성할 수 있다.
$$\left [ \begin{matrix} 20 & 22 \ 40 & 42 \end{matrix} \right ]$$
End of explanation
a[(1, 2, 3), (2, 3, 4)]
Explanation: 문제 2
(1) a 어레이에 인덱싱과 슬라이싱을 이용하여 아래 모양의 어레이를 생성하라.
$$\left [ \begin{matrix} 20 & 21 & 22 \ 40 & 41 & 42 \end{matrix} \right ]$$
(2) a 어레이에 인덱싱과 슬라이싱을 이용하여 아래 모양의 어레이를 생성하라.
$$\left [ \begin{matrix} 5 & 15 & 25 & 35 & 45 & 55 \end{matrix} \right ]$$
```
.
```
(3) 마스크 인덱싱을 사용하여 아래 결과가 나오도록 하라.
array([ 0,  3, 12, 15, 21, 24, 30, 33, 42, 45, 51, 54])
```
.
```
정수 인덱싱
정수 인덱싱을 사용하여 아래 결과가 나오도록 할 수 있다.
array([ 12, 23, 34])
End of explanation
prices_pd = pd.read_csv("data/Weed_Price.csv", parse_dates=[-1])
Explanation: (4) 정수 인덱싱을 사용하여 아래 모양의 어레이가 나오도록 하라.
$$\left [ \begin{matrix} 30 & 32 & 35 \ 50 & 52 & 55 \end{matrix} \right ]$$
```
.
```
데이터 분석
오늘 사용할 데이터는 다음과 같다.
미국 51개 주(State)별 담배(식물) 도매가격 및 판매일자: Weed_price.csv
아래 그림은 미국의 주별 담배(식물) 판매 데이터를 담은 Weed_Price.csv 파일를 엑셀로 읽었을 때의 일부를 보여준다.
실제 데이터량은 22899개이며, 아래 그림에는 5개의 데이터만을 보여주고 있다.
* 주의: 1번줄은 테이블의 열별 목록(column names)을 담고 있다.
* 열별 목록: State, HighQ, HighQN, MedQ, MedQN, LowQ, LowQN, date
<p>
<table cellspacing="20">
<tr>
<td>
<img src="img/weed_price.png", width=600>
</td>
</tr>
</table>
</p>
문제 3
(1) 아래 코드를 설명하라.
End of explanation
prices_pd.sort_values(['State', 'date'], inplace=True)
Explanation: ```
.
```
(2) 아래 코드를 설명하라.
End of explanation
prices_pd.fillna(method='ffill', inplace=True)
Explanation: ```
.
```
(3) 아래 코드를 설명하라.
End of explanation
california_pd = prices_pd[prices_pd.State == "California"].copy(True)
Explanation: ```
.
```
(4) 아래 코드를 설명하라.
End of explanation
ca_sum = california_pd['HighQ'].sum()
ca_count = california_pd['HighQ'].count()
ca_sum / ca_count
Explanation: ```
.
```
(5) 아래 코드를 설명하라.
End of explanation
def getYear(x):
    return x.year
year_col = prices_pd.date.apply(getYear)
prices_pd["year"] = year_col
Explanation: ```
.
```
(6) 아래 코드를 설명하라.
End of explanation
price_ca14 = prices_pd[(prices_pd.State=="California") & \
                       (prices_pd.year==2014)].head()
Explanation: ```
.
```
(7) 아래 코드를 설명하라.
End of explanation
<END_TASK>