2013-07-11 16 views
5

In NumPy, siamo in grado di eseguire "Oltre esterna" tra due vettori a e b come questo:Can numpy einsum() esegue l'aggiunta esterna?

a=np.c_[1,2,3] 
b=np.c_[4,5,6] 
result=a+b.T # alternatively this can be a.T+b 

E 'possibile utilizzare einsum per fare lo stesso calcolo? Qualche altra alternativa veloce? Che ne dici se a è uguale a b?

+3

non credo 'einsum' può farlo (almeno senza l'utilizzo di matrici in più). Non riesco a pensare a un modo più veloce per farlo rispetto alla semplice somma che usa la trasmissione che hai scritto, è troppo lento? Poiché il risultato è simmetrico, è possibile scrivere un'estensione che ha fatto il numero minimo possibile di somme. – jorgeca

risposta

9

Un'altra veloce alternativa a questa operazione è quello di utilizzare:

np.add.outer(a,b) 
Problemi correlati