In [1]:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from pandas import Series, DataFrame
(1) 次の (2,2)行列 m と(2,1)行列(縦ベクトル)v をarrayオブジェクトとして定義してください。また、行列の積 w = mv を計算してください。
In [2]:
m = np.array([[2,3],[4,5]])
v = np.array([[6],[7]])
w = np.dot(m, v)
In [3]:
m
Out[3]:
In [4]:
v
Out[4]:
In [5]:
w
Out[5]:
(2) 逆行列を計算する関数 np.linalg.inv() を利用して、次の連立方程式の解を求めてください。
In [6]:
w = np.array([[33],[59]])
m_inv = np.linalg.inv(m)
answer = np.dot(m_inv, w)
answer
Out[6]:
(3) 次のarrayオブジェクトを「手早く」用意する方法を考えてください。
(ヒント:np.arange, reshape, T を利用します。)
In [7]:
np.arange(1,26).reshape([5,5]).T
Out[7]:
(4) arrayオブジェクトを受け取って、各要素を2倍する(*2 を演算する)関数 double を定義しなさい。また、(1)で定義した m を用いて、double(m) の結果を確認しなさい。
In [8]:
def double(a):
return a*2
In [9]:
double(m)
Out[9]:
(5) double(m.tolist()) の結果を確認して、なぜそのような結果になったのかを考えてください。
(ヒント:tolist()メソッドは、arrayオブジェクトを通常の多次元リストに変換します。)
In [10]:
double(m.tolist())
Out[10]:
「リスト * 2」は、元のリストの要素を2回並べたリストを作成します。