import numpy as np
配列同士の演算#
配列同士の演算も、普通の演算子(+,-,*,/,%など)でできます。
加算#
np.ones((10,5)) + np.arange(50).reshape((10,5))
array([[ 1., 2., 3., 4., 5.],
[ 6., 7., 8., 9., 10.],
[11., 12., 13., 14., 15.],
[16., 17., 18., 19., 20.],
[21., 22., 23., 24., 25.],
[26., 27., 28., 29., 30.],
[31., 32., 33., 34., 35.],
[36., 37., 38., 39., 40.],
[41., 42., 43., 44., 45.],
[46., 47., 48., 49., 50.]])
減算#
np.array([10,9,8]) - np.ones(3)
array([9., 8., 7.])
乗算#
np.array([[10,9,8],[11,91,81]]) * np.array([2,3,4])
array([[ 20, 27, 32],
[ 22, 273, 324]])
np.array([[10,9,8],[11,91,81]]) * np.array([[11,91,81],[10,9,8]])
array([[110, 819, 648],
[110, 819, 648]])
除算#
np.array([10,9,8]) / np.array([2,3,4])
array([5., 3., 2.])
剰余#
np.array([10,9,8]) % np.array([3,4,5])
array([1, 1, 3])
① 以下の流れで演習用データを作成
10~19の要素を持つベクトルを用意
5x2配列にreshape
これを変数xに代入
15~24の要素を持つベクトルを用意
5x2配列にreshape
これを変数yに代入
この2つの配列に対して
(1) 加算
(2) 減算
(3) 乗算
(4) 除算
(5) 剰余
を計算
# (1)
# (2)
# (3)
# (4)
# (5)
等式と不等式#
返り値はbool値(真偽値)の配列になります。
等式#
np.array([5,7,9]) == np.array([3,7,11])
array([False, True, False])
不等式#
np.array([5,7,9]) != np.array([3,7,11])
array([ True, False, True])
np.array([5,7,9]) >= np.array([3,7,11])
array([ True, True, False])
np.array([5,7,9]) < np.array([3,7,11])
array([False, False, True])
② 下の変数x,yについて
(1) 2つの変数で等しい養素をTrue, 等しくない養素をFalseにしたベクトルを出力
(2) x以上のyの養素をTrue, 未満をFalseにしたベクトルを出力
x = np.array([1,2,10,20])
y = np.array([5,-1,20,10])
# (1)
# (2)
内積と外積#
内積 np.dot#
a = np.arange(0,10).reshape((2,5))
b = np.arange(0,15).reshape((5,3))
print("a:")
print(a)
print("b:")
print(b)
np.dot(a,b)
a:
[[0 1 2 3 4]
[5 6 7 8 9]]
b:
[[ 0 1 2]
[ 3 4 5]
[ 6 7 8]
[ 9 10 11]
[12 13 14]]
array([[ 90, 100, 110],
[240, 275, 310]])
外積 np.outer#
c = a[0]
d = b[0]
print("c:",c,"d:",d)
np.outer(c,d)
c: [0 1 2 3 4] d: [0 1 2]
array([[0, 0, 0],
[0, 1, 2],
[0, 2, 4],
[0, 3, 6],
[0, 4, 8]])
③ ニューラルネットワークの結合重み行列Wがある。
このWと入力行列Xの内積を取り、バイアスベクトルbを足し合わせた値を出力してください。
ただし、W,X,bは以下の値を使ってください。
np.random.seed(seed=1234)
# 入力データ
X = np.random.random((32, 20))
n_feature = X.shape[1]
n_hidden = 5
W = np.random.random((n_feature, n_hidden))
b = np.random.uniform(n_hidden)
# ③