0

我有两个矩阵

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

我想得到第三个,其元素对应于先前矩阵的最大值。例如,我想制作类似的东西

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

于 2012-05-20T09:09:46.977 回答