2012-07-06 26 views
11

C'è un modo semplice in NumPy per appiattire l'array di oggetti di tipo?Componi array numpy

so .flatten() metodo appiattisce tipo array non oggetto costruito da stesse matrici dimensioni:

I1 a = np.array([[1],[2],[3]]) 

I2 a.flatten() 
O2 array([1, 2, 3]) 

tuttavia, non posso ottenere dtype = array oggetto appiattito:

I4 b 
O4 array([[1], [2, 3], [3]], dtype=object) 

I5 b.flatten() 
O5 array([[1], [2, 3], [3]], dtype=object) 

Grazie.

+2

L'esempio è già piatta come può essere ('b.shape = (3,)')! Cosa intendi esattamente per appiattire? –

+0

Sì, ma in pratica, desidero che b cambi in [1,2,3,3] –

risposta

28

se volete [1,2,3,3], provare questo allora

np.hstack(b) 
+1

Nice. Stavo per postare questo (che fa esattamente la stessa cosa): [x per bb in b per x in bb] –

+1

@urinieto in realtà il metodo basato sulla comprensione delle liste che hai postato è più veloce, anche se è un po 'più bello averlo sistemato in modo di Numpy. – nye17

+0

che ne dici di un array di 20k elemento? –