2015-05-13 66 views
0

我有一個對象numpy的ndarray這樣的:法拆開的對象numpy的陣列

array([array([1, 2]), array([2]), array([3]), array([4, 2, 3]), 
     array([5, 4]), array([6, 3])], dtype=object) 

有沒有像np.ravel()任何方法來平坦化該數組?例如:

[1,2,2,3,4,2,3,5,4,6,3] 

回答

2

您可以使用np.concatenate轉換爲 「扁平化」 numpy的陣列,像這樣 -

In [355]: obj1 = np.array([np.array([1, 2]), np.array([2]), np.array([3]), np.array([4, 2, 3]), 
    ...: np.array([5, 4]), np.array([6, 3])], dtype=object) 

In [356]: np.concatenate(obj1) 
Out[356]: array([1, 2, 2, 3, 4, 2, 3, 5, 4, 6, 3]) 

然後,您可以轉換到一個列表與.tolist() -

In [357]: np.concatenate(obj1).tolist() 
Out[357]: [1, 2, 2, 3, 4, 2, 3, 5, 4, 6, 3] 
1

顧名思義,您可以使用numpy.concatenate,它將數組的列表/數組連接成扁平的numpy -array:

import numpy as np 
from numpy import array 

# some test data 
a = array([array([1, 2]), array([2]), array([3]), array([4, 2, 3]), 
    array([5, 4]), array([6, 3])], dtype=object) 

np.concatenate(a) 
# array([1, 2, 2, 3, 4, 2, 3, 5, 4, 6, 3])