In [2]:
# numpyをインポートして名前をnpにする.numpyのメソッドは,np.***で使える.
import numpy as np
In [3]:
# 行列
A = np.array([[1,2,3],[4,5,6],[7,8,9]])
A
Out[3]:
In [4]:
# 表示
print(A)
In [5]:
# ベクトル
x = np.array([[1],[2],[3]])
print(x)
In [6]:
# 行列とベクトルの演算
b = np.dot(A, x)
print(b)
In [7]:
# こちらは違う
A * x
Out[7]:
In [8]:
# わかりやすく実行すると
x = np.array([[10],[100],[1000]])
A * x
Out[8]:
In [9]:
# 定数倍
A * 2
Out[9]:
In [10]:
# ゼロで初期化
A = np.zeros((3,4))
print(A)
In [11]:
# 乱数で初期化(0.0から1.0の一様乱数)
A = np.random.rand(2,3)
print(A)
In [21]:
# 乱数で初期化(標準正規分布 (平均0, 標準偏差1))
A = np.random.randn(2,3)
print(A)
In [40]:
# せっかくなので標準正規分布を描いてみよう
%matplotlib inline
import matplotlib
import matplotlib.pyplot as plt
x = np.random.randn(10000)
y = plt.hist(x, bins=50) # binsは区切る個数
plt.show()
In [41]:
A = np.array([[6,2],[2,3]])
In [52]:
la, v = np.linalg.eig(A)
print(la)
print(v)
print(2/np.sqrt(5), 1/np.sqrt(5))
print(-1/np.sqrt(5), 2/np.sqrt(5))
print(v[0])
print(v[:,0])
In [65]:
A = np.array([[1,2],[3,4]])
print(A)
In [66]:
invA = np.linalg.inv(A)
print(invA)
In [67]:
np.dot(invA, A)
Out[67]:
In [69]:
a = np.array([1,2,3])
b = np.array([10,20,30])
np.dot(a,b)
Out[69]:
In [ ]: