# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: Python 3
#     name: python3
# ---

# + [markdown] id="view-in-github" colab_type="text"
# <a href="https://colab.research.google.com/github/yukinaga/ai_programming/blob/main/lecture_02/09_exercises.ipynb" target="_parent"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a>

# + [markdown] id="9VR4iG1nkWLa"
# # 演習
# NumPyとmatplotlib、Pandasの扱いに慣れていきましょう。
#
#

# + [markdown] id="Yqh1BS6Jzgy8"
# ## `reshape`による配列形状の操作
# 以下のコードを実行するとエラーが発生します。  
# `reshape`により配列`a`の形状を変更し、エラーが発生しないようにしてください。

# + id="DFv4AIiT6Arx"
import numpy as np

a = np.array([0, 1, 2, 3, 4, 5])  # この配列の形状を、reshapeにより変更する
b = np.array([[5, 4, 3], [2, 1, 0]]) 

# この下ににコードを書く


print(a + b)

# + [markdown] id="bJfBwlcdq4-y"
# ## 三次関数の描画
# 以下の三次関数の曲線を、matplotlibを使って描画しましょう。  
# $$y=x^3-12x$$
# 以下のセルのコードを補完してください。

# + id="0nrE_FeYkJrp"
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-4, 4)
# この下のコードを補完する
y = 

plt.xlabel("x")
plt.ylabel("y")
plt.plot(x, y)
plt.show()

# + [markdown] id="M9YLUdxqd8B-"
# ## DataFrameの作成
# 以下のセルにコードを追記し、行と列にラベルのついたDataFrameを作成しましょう。

# + id="8WMNvGvHd8x5"
import pandas as pd
import numpy as np

a_list = [[80, 60, 70, True],  # データ
          [90, 80, 70, True],
          [70, 60, 75, True],
          [40, 60, 50, False],
          [20, 30, 40, False],
          [50, 20, 10, False]]
a_index = ["Taro", "Hanako", "Jiro", "Sachiko", "Saburo", "Yoko"]  # 行のラベル
a_columns = ["Japanese", "English", "Math", "Result"]  # 列のラベル

# --- ここからコードを記述
a = pd.DataFrame(


# --- ここまで ---

a

# + [markdown] id="TmGJE24E-51R"
# # 解答例
# 以下は解答例です。  
# どうしてもわからない時のみ、参考にしましょう。

# + [markdown] id="QeqlSHdi_lXE"
# ## `reshape`による配列形状の操作

# + id="zq_9P1oB3bN_"
import numpy as np

a = np.array([0, 1, 2, 3, 4, 5])  # この配列の形状を、reshapeにより変更する
b = np.array([[5, 4, 3], [2, 1, 0]]) 

# この下ににコードを書く
a = a.reshape(2, 3)

print(a + b)

# + [markdown] id="XAjofnm3_nVZ"
# ## 三次関数の描画

# + id="YUyM2QW-_EOg"
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-4, 4)
# この下のコードを保管する
y = x**3 - 12*x

plt.xlabel("x")
plt.ylabel("y")
plt.plot(x, y)
plt.show()

# + [markdown] id="AJ2lxlhRgpyH"
# ## DataFrameの作成

# + id="pJ-kxq-Fgp86"
import pandas as pd
import numpy as np

a_list = [[80, 60, 70, True],  # データ
          [90, 80, 70, True],
          [70, 60, 75, True],
          [40, 60, 50, False],
          [20, 30, 40, False],
          [50, 20, 10, False]]
a_index = ["Taro", "Hanako", "Jiro", "Sachiko", "Saburo", "Yoko"]  # 行のラベル
a_columns = ["Japanese", "English", "Math", "Result"]  # 列のラベル

# --- ここからコードを記述
a = pd.DataFrame(a_list)
a.index = a_index
a.columns = a_columns
# --- ここまで ---

a

StarcoderdataJupyterScriptsDedupFiltered