1次元の場合
以下の配列を元の配列とする。
1 2 3 4 |
a = np.arange(4) print(a) # [0 1 2 3] |
数値は1次元配列に拡張されて、要素ごとに演算される。
1 2 3 4 5 6 7 8 |
b = 2 print(a + b) print(a * b) # 2 -> [2, 2, 2, 2] # [2 3 4 5] # [0 2 4 6] |
要素が1つの配列(リスト)は同じサイズの配列に拡張されて、要素ごとに演算される。
1 2 3 4 5 6 7 8 |
b = np.array([2]) print(a + b) print(a * b) # [2] -> [2, 2, 2, 2] # [2 3 4 5] # [0 2 4 6] |
2次元の場合
以下の配列を元の配列とする。
1 2 3 4 5 6 |
a = np.arange(9).reshape(3, 3) print(a) # [[0 1 2] # [3 4 5] # [6 7 8]] |
数値は2次元配列に拡張されて、要素ごとに計算される。
1 2 3 4 5 6 7 8 9 10 |
b = 2 print(a + b) # 2 -> [[2 2 2] # [2 2 2] # [2 2 2]] # [[ 2 3 4] # [ 5 6 7] # [ 8 9 10]] |
要素が一つの配列は2次元に拡張されて、要素ごとに計算される。
1 2 3 4 5 6 7 8 9 10 |
b = [2] print(a + b) # [2] -> [[2 2 2] # [2 2 2] # [2 2 2]] # [[ 2 3 4] # [ 5 6 7] # [ 8 9 10]] |
列数と同じ要素数の1次元配列(リスト)は、同じ列数の2次元配列に拡張されて計算される。
1 2 3 4 5 6 7 8 9 10 |
b = [1, 2, 3] print(a + b) # [1 2 3] -> [[1 2 3] # [1 2 3] # [1 2 3]] # [[ 1 3 5] # [ 4 6 8] # [ 7 9 11]] |
行数と同じ要素数の列ベクトルは、同じ行数の2次元配列に拡張されて計算される。
1 2 3 4 5 6 7 8 9 10 |
b = np.array([1, 2, 3]).reshape(-1, 1) print(a + b) # [[1] [[1 1 1] # [2] -> [2 2 2] # [3]] [3 3 3]] # [[ 1 2 3] # [ 5 6 7] # [ 9 10 11]] |