2012-05-20 177 views
0

我有兩個矩陣矩陣運算,最大值

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

,我想第三個它的元素對應的最大以前的矩陣。例如我想生產一些像

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

是否有任何矢量操作,我可以做,使結果更快?

回答

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(條件,[如果屬實返回值,返回值,如果虛假]) 如果不通過可選的返回參數,您將獲得一個數組,其條件爲真的索引。

2

使用numpy.maximum

>>> np.maximum(A, B) 
array([[ 13., 5.], 
     [ 0., 4.]])