0

私は2つのマトリックスを持っています

A = array([[ 12.,   0.],[  0.,   4.]])
B = array([[ 13.,   5.],[  -1.,   -5.]])

要素が前の行列の最大値に対応する 3 番目の行列を取得したいと考えています。たとえば、次のようなものを作成したいと思います

C = array([[ 13.,   5.],[  0.,   4.]])

結果をより速くするためにできるベクトル演算はありますか?

4

2 に答える 2

2

を使用しnumpy.maximumます。

>>> np.maximum(A, B)
array([[ 13.,   5.],
       [  0.,   4.]])
于 2012-05-20T10:10:33.583 に答える
1

配列の代わりに 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 であるインデックスを含む配列が取得されます。

于 2012-05-20T09:09:46.977 に答える