Install
pip install numpy
Import
import numpy as np
初期化
# ベクトルの定義
a = np.array([1, 2, 3])
# 行列の定義
b = np.array(
[[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
)
# 形を指定して、要素が全て 0 で埋められた ndarray を作る
a = np.zeros((3, 3))
'''
array([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
'''
# 形を指定して、要素が全て 1 で埋められた ndarray を作る
b = np.ones((2, 3))
'''
array([[1., 1., 1.],
[1., 1., 1.]])
'''
# 形と値を指定して、要素が指定した値で埋められた ndarray を作る
c = np.full((3, 2), 9)
'''
array([[9, 9],
[9, 9],
[9, 9]])
'''
# 指定された大きさの単位行列を表す ndarray を作る
d = np.eye(5)
'''
array([[1., 0., 0., 0., 0.],
[0., 1., 0., 0., 0.],
[0., 0., 1., 0., 0.],
[0., 0., 0., 1., 0.],
[0., 0., 0., 0., 1.]])
'''
# 形を指定して、 0 ~ 1 の間の乱数で要素を埋めた ndarray を作る
e = np.random.random((4, 5))
'''
array([[0.945015 , 0.43016639, 0.29548392, 0.95129474, 0.79083349],
[0.38302104, 0.81301269, 0.89543488, 0.98794199, 0.07312155],
[0.28104454, 0.05910526, 0.82286822, 0.80324149, 0.34598631],
[0.27901198, 0.99971565, 0.80767343, 0.8232321 , 0.53487828]])
'''
# 3 から始まり 10 になるまで 1 ずつ増加する数列を作る(10 は含まない)
f = np.arange(3, 10, 1)
'''
array([3, 4, 5, 6, 7, 8, 9])
'''
形,次元
print('Shape:', b.shape)
print('Rank:', b.ndim)
#Shape: (3, 3)
#Rank: 2
スライス
'''
e=array([[ 1, 2, 3, 4, 5],
[ 6 , 7, 8, 9,10],
[11,12,13,14,15],
[16,17,18,19,20]])
'''
# 4 x 5 行列 e の真ん中の 2 x 3 = 6 個の値を取り出す
center = e[1:3, 1:4]
'''
array([[ 7, 8, 9],
[12,13,14]])
'''
演算
# 行列 A の定義
A = np.array([
[0, 1, 2],
[3, 4, 5],
[6, 7, 8]
])
# 行列 B の定義
B = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
# 行列積の計算 (1)
C = np.dot(A, B)
'''
array([[ 18, 21, 24],
[ 54, 66, 78],
[ 90, 111, 132]])
'''
C = A.dot(B)
'''
array([[ 18, 21, 24],
[ 54, 66, 78],
[ 90, 111, 132]])
'''
# データ型の確認(整数値)
a.dtype
'''
dtype('int64')
'''
numpy計算例
import numpy as np
a = np.array([6,5,4,3,2,1])
b = np.array([1,2,3,4,5,6])
w = np.array([2,4,6,10,12,14])
c = (a-b)
print(c)
d=w*c**2
print(d)
print(np.sum(d))
e = w[0]*(a[0]-b[0])**2+w[1]*(a[1]-b[1])**2+w[2]*(a[2]-b[2])**2+w[3]*(a[3]-b[3])**2+w[4]*(a[4]-b[4])**2+w[5]*(a[5]-b[5])**2
print(e)
参考文献
NumPy 入門 - ディープラーニング入門:Chainer チュートリアル