2017-08-07 44 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