2013-06-08 5 views
8

Was ist der Unterschied zwischen einem numpy Array (sagen wir X), das eine Form von (N, 1) und (N,) hat. Sind nicht beide Nx1-Matrizen? Der Grund, warum ich frage, ist, weil manchmal Berechnungen entweder das eine oder das andere zurückgeben.numpy Array, das ist (n, 1) und (n,)

+0

Können Sie mir ein paar Beispiele geben? – satoru

Antwort

9

Dies ist ein 1D-Array:

>>> np.array([1, 2, 3]).shape 
(3,) 

Dieses Array ist ein 2D, aber es ist nur ein Element in der ersten Dimension:

>>> np.array([[1, 2, 3]]).shape 
(1, 3) 

Transponieren der Form gibt für Sie fragen:

>>> np.array([[1, 2, 3]]).T.shape 
(3, 1) 

Nun schauen Sie sich das Array an. Nur die erste Spalte dieses 2D-Arrays ist gefüllt.

>>> np.array([[1, 2, 3]]).T 
array([[1], 
     [2], 
     [3]]) 

Vor dem Hintergrund dieser beiden Arrays:

>>> a = np.array([[1, 2, 3]]) 
>>> b = np.array([[1, 2, 3]]).T 
>>> a 
array([[1, 2, 3]]) 
>>> b 
array([[1], 
     [2], 
     [3]]) 

Sie Vorteil des Rundfunks nehmen.

>>> a * b 
array([[1, 2, 3], 
     [2, 4, 6], 
     [3, 6, 9]]) 

Die fehlenden Zahlen ausgefüllt sind Denken Sie für Zeilen und Spalten in der Tabelle oder eine Tabelle.

>>> a + b 
array([[2, 3, 4], 
     [3, 4, 5], 
     [4, 5, 6]]) 

Dies zu tun mit höheren Dimensionen wird härter für Ihre Phantasie.