Python 将新行追加到numpy数组
我试图在循环中向现有numpy数组追加一个新行。我尝试过append、concatenate和vstack等方法,但都没有得到我想要的结果 我尝试了以下方法:Python 将新行追加到numpy数组,python,arrays,numpy,Python,Arrays,Numpy,我试图在循环中向现有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=
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
我希望输出为[[1,2,3][4,5,6]…]如果您希望
[[1,2,3],[4,5,6]
我可以为您提供一个不附加的替代方案:np.arange
,然后对其进行重塑:
>>> import numpy as np
>>> np.arange(1,7).reshape(2, 3)
array([[1, 2, 3],
[4, 5, 6]])
或者创建一个大数组并手动填充(或循环填充):
关于您的示例的说明:
在第二个示例中,您忘记保存结果,将其设置为array=np.concatenate((array,newrow1),axis=0)
,这样它就可以工作了(与您想要的不完全一样,但数组不再是空的)。第一个示例似乎缩进严重,不知道变量和/或问题,很难调试。增量构建数组的正确方法是不要从数组开始:
alist = []
alist.append([1, 2, 3])
alist.append([4, 5, 6])
arr = np.array(alist)
这基本上与
arr = np.array([ [1,2,3], [4,5,6] ])
制作小(或大)样本阵列的最常用方法
即使您有充分的理由使用某个版本的concatenate
(hstack、vstack等),最好收集列表中的组件,并执行一次concatante。array=np.concatenate((array,newrow),axis=0)
和array=np.concatenate((array,newrow1,axis=0)
。通过引用它不起作用。在进行操作之前,您需要有array=
。这里已经回答了:[1]:我也尝试过了,但它最终会像这样添加到行的末尾[1.2.3.4.5.6]。只需尝试array=np.vstack([np.concatenate([array,newrow]),newrow1])
。所有这些选项都可以在Gyanshu发布的帖子中找到。我连接了数组,然后对其进行了重塑,现在效果很好。
alist = []
alist.append([1, 2, 3])
alist.append([4, 5, 6])
arr = np.array(alist)
arr = np.array([ [1,2,3], [4,5,6] ])