Pythonの数値計算モジュールNumPyの配列型データ構造であるndarrayと数値の演算、ndarrayとndarrayの演算について説明する。
Numpyを使う際にはimportが必要。しばしばnpと略される。
import numpy as np
1. ndarrayと数値の計算
要素が数値であるndarrayと数値を演算した場合、ndarrayの全要素に対して同じ演算が適用される。
数字の加算の例。各要素に2が足される。
import numpy as np y = np.array([[10, 11, 12],[13, 14, 15]]) print(y + 2)
実行結果
[[12 13 14] [15 16 17]]
べき乗の例。各要素が二乗される。
import numpy as np y = np.array([[10, 11, 12],[13, 14, 15]]) print(y ** 2)
実行結果
[[100 121 144] [169 196 225]]
要素が文字のndarrayは演算できない
import numpy as np y = np.array([['10', '11', '12'],['13', '14', '15']]) print(y * 2)
実行結果
UFuncTypeError: ufunc 'multiply' did not contain a loop with signature matching typesnumpy.core._exceptions._UFuncNoLoopError: ufunc 'multiply' did not contain a loop with signature matching types
2. ndarray同士の計算
同じ形状のndarray同士の演算では同じ位置の要素同士が演算される
import numpy as np x = np.array([[1, 1, 1], [2, 2, 2]]) y = np.array([[10, 11, 12], [13, 14, 15]]) print(x * y)
実行結果
[[10 11 12] [26 28 30]]
1行n列のndarrayとm行1列のndarrayの演算では、それぞれのndarrayがm行n列のndarrayに展開され要素同士が演算される。結果はm行n列のndarrayとなる。
1行4列のndarrayと3行1列のndarrayの演算。それぞれのndarrayが3行4列に展開され要素同士が演算される。
import numpy as np x = np.array([1, 2, 3, 4]) y = np.array([[10], [11], [12]]) print(x * y)
実行結果
[[10 20 30 40] [11 22 33 44] [12 24 36 48]]
m行n列のndarrayとm行1列のndarrayの演算では、後者がm行n列に展開され要素同士が演算される。結果はm行n列のndarrayとなる。
2行3列のndarrayと2行1列のndarrayの演算。後者が2行3列に展開され要素同士が演算される。
import numpy as np x = np.array([[1, 1, 1], [2, 2, 2]]) y = np.array([[10],[11]]) print(x / y)
実行結果
[[0.1 0.1 0.1 ] [0.18181818 0.18181818 0.18181818]]
m行n列のndarrayと1行n列のndarrayの演算では、後者がm行n列に展開され要素同士が演算される。結果はm行n列のndarrayとなる。
2行3列のndarrayと1行3列のndarrayの演算。後者が2行3列に展開され要素同士が演算される。
import numpy as np x = np.array([[1, 1, 1], [2, 2, 2]]) y = np.array([10, 11, 12]) print(x / y)
実行結果
[[0.1 0.09090909 0.08333333] [0.2 0.18181818 0.16666667]]
0 件のコメント:
コメントを投稿