2012-07-06 48 views
11

Có cách nào đơn giản trong NumPy để làm phẳng mảng đối tượng kiểu?Flatten mảng numpy

Tôi biết .flatten() phương pháp flattens mảng kiểu phi vật thể được xây dựng từ cùng một mảng kích thước:

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

I2 a.flatten() 
O2 array([1, 2, 3]) 
tuy nhiên

, tôi không thể nhận dtype = array đối tượng phẳng:

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

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

Cảm ơn.

+2

Các ví dụ là đã phẳng như nó có thể được ('b.shape = (3,)')! Chính xác thì ý bạn là gì bằng cách làm phẳng? –

+0

Có, nhưng thực tế, tôi muốn b thay đổi thành [1,2,3,3] –

Trả lời

28

nếu bạn muốn [1,2,3,3], hãy thử này sau đó

np.hstack(b) 
+1

Tốt. Tôi đã chuẩn bị đăng bài này (điều tương tự): [x cho bb trong b cho x trong bb] –

+1

@urinieto thực sự là phương pháp dựa trên danh sách mà bạn đã đăng tải nhanh hơn, mặc dù nó đẹp hơn khi được giải quyết cách numpy. – nye17

+0

làm thế nào về cho một mảng của 20k yếu tố? –