2017-04-20 119 views
0

我有一定的陣列,說A1與下面形狀重塑numpy的陣列/嵌套陣列

a1.shape 
(1L, 36L) 

我要修改的這個陣列的形狀,使得所期望的輸出應該類似

a1.shape 
(1L,) 
a1[0].shape 
(36L,) 

我該如何做到這一點?

回答

0

我懷疑你是否明白你的要求。但在這裏做(對於略小陣列)方式:

In [48]: a1=np.arange(6).reshape(1,6) 
In [49]: a1.shape 
Out[49]: (1, 6) 
In [50]: a2=np.zeros((1,),dtype=object) 
In [51]: a2[0]=a1[0] 
In [52]: a2.shape 
Out[52]: (1,) 
In [53]: a2[0].shape 
Out[53]: (6,) 
In [54]: a1 
Out[54]: array([[0, 1, 2, 3, 4, 5]]) 
In [55]: a2 
Out[55]: array([array([0, 1, 2, 3, 4, 5])], dtype=object) 

numpy允許創建和使用多維數組時效果最好。嘗試製作一個數組或數組嵌套數組是可能的,但很尷尬。

但也許你真正想要的是一個嵌套列表:

In [56]: al = a1.tolist() 
In [57]: al 
Out[57]: [[0, 1, 2, 3, 4, 5]] 
In [58]: len(al) 
Out[58]: 1 
In [59]: len(al[0]) 
Out[59]: 6 
+0

我需要像這樣做的原因是因爲我有串聯A1到具有形狀(2L)另一個陣列和本每行數組的形狀(36L,)。兩個陣列形狀(1L,36L)和(2L,)的連接是我的最終目標。 –

+0

那麼,其他數組是一個2元素對象數組?你是如何構建它的? – hpaulj

+0

是的,另一個數組表示'b1'是(2L,),每一行都是形狀的(36L,)。諸如結構的原因是因爲我通過列表理解循環(網頁的順序解析)獲取數組。現在,我不是將中間輸出轉換爲numpy數組,而是將它們保存爲「列表」對象。如果你能指導我學習一些運行列表理解的方法,我會非常感激 –