我正试图在循环中向现有numpy数组追加新行。我尝试过一些方法,包括append、concatenate和vstack,但没有一个能给出我想要的结果。
我试过以下方法:
for _ in col_change:
if (item + 2 < len(col_change)):
arr=[col_change[item], col_change[item + 1], col_change[item + 2]]
array=np.concatenate((array,arr),axis=0)
item+=1
我也尝试过最基本的格式,它仍然给我一个空数组。
array=np.array([])
newrow = [1, 2, 3]
newrow1 = [4, 5, 6]
np.concatenate((array,newrow), axis=0)
np.concatenate((array,newrow1), axis=0)
print(array)
我希望输出为[[1,2,3][4,5,6]…]
如果你想
[[1,2,3],[4,5,6]]
,我可以给你一个不需要append
:np.arange
的替代方案,然后重新塑造它:或者创建一个大数组并手动填充(或循环):
关于您的示例的注释:
在第二个例子中,您忘记保存结果,将其设为
array = np.concatenate((array,newrow1), axis=0)
,然后它就可以工作了(与您想要的不完全一样,但是数组不再是空的)。第一个例子缩进得很严重,不知道变量和/或那里的问题,很难调试。增量构建数组的正确方法是不要从数组开始:
这与
制作小(或大)样本数组的最常用方法。
即使您有充分的理由使用某些版本的
concatenate
(hstack、vstack等),也最好收集列表中的组件,并执行一次concatante。相关问题 更多 >
编程相关推荐