2012-11-15 1 views
5

Die nativen Python-Codes sind wie folgt aus:Wie benutze ich numpy, um zwei beliebige Elemente in einem Array hinzuzufügen und eine Matrix zu erzeugen?

>>> a=[1,2,3,4,5,6] 
>>> [[i+j for i in a] for j in a] 
[[2, 3, 4, 5, 6, 7], 
[3, 4, 5, 6, 7, 8], 
[4, 5, 6, 7, 8, 9], 
[5, 6, 7, 8, 9, 10], 
[6, 7, 8, 9, 10, 11], 
[7, 8, 9, 10, 11, 12]] 

Allerdings habe ich diesen Job verwenden numpy zu tun, wie das Array sehr groß ist. Hat jemand Ideen über die gleiche Arbeit in numpy?

Antwort

9

Viele NumPy binäre Operatoren haben eine outer Verfahren, das verwendet werden kann, um das Äquivalent von einer Multiplikation zu bilden (oder in diesem Fall zusätzlich) Tabelle:

In [260]: import numpy as np 
In [255]: a = np.arange(1,7) 

In [256]: a 
Out[256]: array([1, 2, 3, 4, 5, 6]) 

In [259]: np.add.outer(a,a) 
Out[259]: 
array([[ 2, 3, 4, 5, 6, 7], 
     [ 3, 4, 5, 6, 7, 8], 
     [ 4, 5, 6, 7, 8, 9], 
     [ 5, 6, 7, 8, 9, 10], 
     [ 6, 7, 8, 9, 10, 11], 
     [ 7, 8, 9, 10, 11, 12]]) 
Verwandte Themen