python中的矩阵运算,最大值

时间:2012-05-20 08:10:36

标签: python matrix numpy

我有两个矩阵

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

我希望得到第三个元素,其元素对应于前一个矩阵的最大值。例如,我想生产像

这样的东西
C = array([[ 13.,   5.],[  0.,   4.]])

我可以做任何矢量操作来加快结果吗?

2 个答案:

答案 0 :(得分:2)

使用numpy.maximum

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

答案 1 :(得分: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,[returnvalue if true,returnvalue if false]) 如果未传递可选的返回参数,则将获得一个包含条件为真的索引的数组。