2012-05-20 176 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.]])