2017-08-07 45 views
0

我想用循環中的數據創建二維數組。每個循環迭代應該在數組內添加數組。例如從[] => [[2,3]] => [[2,3],[3,4]] => [[2,3],[3,4],[7,3 ]]和同樣。
初始化循環內的二維數組

import numpy as np 

output_arr = np.array([]) 

for i in range(0,4): 
    temp_arr = np.ones(2) 
    print temp_arr.shape 
    output = np.append((output_arr, temp_arr)) 

print output_arr.shape 

這裏np.append是示例代碼,我需要連接/添加/ hstack陣列一起......(np.append沒有工作。)
如何在循環中填充二維數組?

+0

什麼是你的問題? – DyZ

+0

如何附加它會使二維數組... np.append不起作用... – Chathuranga94

+0

堅持列表追加,您在開始時顯示。然後從嵌套列表中創建數組。 – hpaulj

回答

2

開始與空列表

output_arr = [] 

內環路附加:

for _ in range(5): 
    output_arr.append([1, 1]) 

外循環,只需調用np.array

X = np.array(output_arr) 
+0

謝謝。這工作。但有沒有辦法只用數組來做到這一點,而不涉及列表。只是問... – Chathuranga94

+0

@ Chathuranga94是的。如果將數組而不是列表添加到外部列表中,它將起作用。然而,將數組附加到數組並不簡單,因爲numpy數組是不可變的。隨意標記接受,如果它有幫助。 –

+0

你的答案在技術上是OP所要求的,但是這可以通過單個列表理解來完成。 – SwiftsNamesake

0

如果你真的只是想用構建,構建np.empty數組開頭,然後如果你需要在陣列的當前填充部分操作,使用output[:i+1]

import numpy as np 

output_arr = np.empty((5,2)) 

for i in range(0,4): 
    temp_arr = np.ones(2) 
    print temp_arr.shape 
    output_arr[i] = temp_arr 
    print output_arr[:i + 1].shape 

print output_arr.shape