2012-05-20 2 views
0

У меня есть две матрицоперации Matrix в питоне, максимальное значение

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 (состояние, [ReturnValue, если оно истинно, если ReturnValue ложном]) Если вы не пройти необязательные параметры возврата, вы получите массив с индексами, где условие истинно.

2

Использование numpy.maximum.

>>> np.maximum(A, B) 
array([[ 13., 5.], 
     [ 0., 4.]]) 
Смежные вопросы