Pythonで2つの行列の対応する要素の最大値の行列を作る
PythonのNumPyを使って、2つの行列の各要素を比較して、大きい方の要素を集めた行列を作ります。
目次
numpy.maximumメソッドの使い方
要素毎に最大値の行列を計算します。
y = numpy.maximum(x1, x2, [out], [where], [casting], [order], [dtype], [subok])
変数 |
型 |
内容 |
---|---|---|
x1,x2 |
array_like |
比較する行列。 |
out |
ndarray, None, tuple |
省略可。規定値はNone。 |
where |
array_like |
省略可。規定値はTrue。 |
casting |
str |
省略可。規定値は'same_kind'。 |
order |
str |
省略可。規定値は'K'。 |
dtype |
dtype |
省略可。規定値はNone。 |
subok |
bool |
省略可。規定値はTrue。 |
y |
ndarray, scalar |
各要素が最大値で構成される行列、または数値。 |
ちょっとイメージしにくいですね。使用例を見た方がわかりやすいと思います。
大きい方の要素を集めた行列の作成例
>>> import numpy as np
>>> a = np.array([-2,-1,0,1,2])
>>> a
array([-2, -1, 0, 1, 2])
>>> b = np.array([0,0,0,0,0])
>>> b
array([0, 0, 0, 0, 0])
>>> np.maximum(a,b)
array([0, 0, 0, 1, 2])
>>> np.maximum(a,0) # 片方の引数をスカラーにしてみる
array([0, 0, 0, 1, 2])
同じ大きさの行列の各要素を比較して、大きい方の要素だけで構成された行列を返しています。
異なる大きさの行列を比較したらどうなるでしょうか。
>>> import numpy as np
>>> a = np.array([-2,-1,0,1,2])
>>> a
array([-2, -1, 0, 1, 2])
>>> c
array([[-1.5],
[ 0. ],
[ 1.5]])
>>> np.maximum(a,c)
array([[-1.5, -1. , 0. , 1. , 2. ],
[ 0. , 0. , 0. , 1. , 2. ],
[ 1.5, 1.5, 1.5, 1.5, 2. ]])
-2 |
-1 |
0 |
1 |
2 |
-2 |
-1 |
0 |
1 |
2 |
-2 |
-1 |
0 |
1 |
2 |
と
-1.5 |
-1.5 |
-1.5 |
-1.5 |
-1.5 |
0 |
0 |
0 |
0 |
0 |
1.5 |
1.5 |
1.5 |
1.5 |
1.5 |
という2つの行列の比較が行われるようです。
自動的に拡張してくれるのは楽ですね。
公開日
広告
Pythonの数値計算カテゴリの投稿
- NumPyで転置行列を取得する
- NumPyの定数
- Pythonで2つの行列の対応する要素の最大値の行列を作る
- Pythonで2次元メッシュを作る
- Pythonで値が一番大きい要素のインデックスを探す
- Pythonで値が一番小さい要素のインデックスを探す
- Pythonで指定した数値以上の最小の整数を計算する
- Pythonで等間隔の数字の列を作る
- Pythonで等間隔の数字の列を作る(arange編)
- Pythonで行列の次元を調べる
- Pythonで行列の積を計算する
- Pythonで零行列を作る
- PythonのNumPyの行列の書き換えを禁止したり許可したりする
- Pythonの行列のサイズを調べる