まずはNumPy配列操作
『ゼロから作るDeep Learning』でディープラーニングに必要な行列処理をPythonでやるための準備。まずは、NumPyで配列操作を学ぶ。
>>> import numpy as np >>> x = np.array([1.0, 2.0, 3.0]) >>> x array([ 1., 2., 3.]) >>> type(x) <class 'numpy.ndarray'> >>> y = np.array([2.0, 4.0, 6.0]) >>> x+y array([ 3., 6., 9.]) >>> x*y array([ 2., 8., 18.]) >>> x/y array([ 0.5, 0.5, 0.5]) >>> x array([ 1., 2., 3.]) >>> x/2 #ブロードキャスト機能 array([ 0.5, 1. , 1.5]) # N次元配列 >>> A = np.array([[1,2], [3,4]]) >>> A array([[1, 2], [3, 4]]) >>> A.shape (2, 2) >>> A.dtype dtype('int64') >>> A array([[1, 2], [3, 4]]) >>> B = np.array([[3,0],[0,6]]) >>> B array([[3, 0], [0, 6]]) >>> A+B array([[ 4, 2], [ 3, 10]]) >>> A*B array([[ 3, 0], [ 0, 24]]) >>> A array([[1, 2], [3, 4]]) >>> A*10 array([[10, 20], [30, 40]]) >>> C = np.array([10,20]) >>> A*C array([[10, 40], [30, 80]]) >>> X = np.array([[51,55],[14,19],[0,4]]) >>> X array([[51, 55], [14, 19], [ 0, 4]]) >>> X[0] array([51, 55]) >>> X[0][1] 55 >>> for row in X: ... print(row*2) ... [102 110] [28 38] [0 8] >>> x = X.flatten() >>> x array([51, 55, 14, 19, 0, 4]) >>> x[np.array([0,2,4])] array([51, 14, 0]) >>> x > 15 array([ True, True, False, True, False, False], dtype=bool) >>> x[x>15] array([51, 55, 19]) # この不等号が使える文法は特徴的
printとかarrayとか もっと短くしたいが あまり言語文法を弄っても仕方がないので、 甘受しよう。