私は2つのマトリックスを持っています
A = array([[ 12., 0.],[ 0., 4.]])
B = array([[ 13., 5.],[ -1., -5.]])
要素が前の行列の最大値に対応する 3 番目の行列を取得したいと考えています。たとえば、次のようなものを作成したいと思います
C = array([[ 13., 5.],[ 0., 4.]])
結果をより速くするためにできるベクトル演算はありますか?
を使用しnumpy.maximum
ます。
>>> np.maximum(A, B)
array([[ 13., 5.],
[ 0., 4.]])
配列の代わりに numpy 配列を使用する方が簡単です。numpy 配列を使用すると、これを解決する np.where 関数があります。
import numpy as np
A = np.array([[ 12., 0.],[ 0., 4.]])
B = np.array([[ 13., 5.],[ -1., -5.]])
C = np.where(A>B,A,B)
>>> C
array([[ 13., 5.],
[ 0., 4.]])
これは次のように機能します: np.where(condition, [true の場合は戻り値、false の場合は戻り値]) オプションの戻りパラメーターを渡さない場合、条件が true であるインデックスを含む配列が取得されます。