如何堆叠for循环的每次迭代的输出?

我有两个 for 循环,它们生成一个形状为 (1, 3) 的数组。


我想将每次迭代的结果垂直堆叠在一个数组中。更清楚地说,最终输出应该是一个 (3, 3) 数组,其中第一行是第一次迭代的输出,依此类推。我的代码如下所示:


for i in range (2):



    for j in range (i, 2):



            yparam = The_path / ("{}_Y{}{}.csv" .format('Filter',i+1,j+1) )



            with open( yparam ,'r', newline='') as Y_parameter_Data:

                    data =  numpy.loadtxt(Y_parameter_Data, skiprows=1, delimiter=',')


                    ypar = []


                    for k in range(0, len(3)):

                            a = numpy.reshape(data[k,1::2], (1,1))

                            b = numpy.reshape(data[k,2::2], (1,1))

                            ypar.append(a+j*b)


                    c = ypar


                    fdata= numpy.asarray(c) 

                    fdata= numpy.reshape(fdata, (1,-1))



                    fdata= fdata

这里的问题是如何为每次迭代保存 fdata。然后我可以使用 numpy.vstack 来堆叠结果。谢谢你的帮助。


饮歌长啸
浏览 179回答 1
1回答

翻阅古今

尝试定义一个由列表组成的列表。for i in range (2):    InnerList=[]    for j in range (i, 2):            yparam = The_path / ("{}_Y{}{}.csv" .format('Filter',i+1,j+1) )            with open( yparam ,'r', newline='') as Y_parameter_Data:                data =  numpy.loadtxt(Y_parameter_Data, skiprows=1, delimiter=',')                ypar = []                for k in range(0, len(3)):                        a = numpy.reshape(data[k,1::2], (1,1))                        b = numpy.reshape(data[k,2::2], (1,1))                        ypar.append(a+j*b)                c = ypar                fdata= numpy.asarray(c)                 fdata= numpy.reshape(fdata, (1,-1))                fdata= fdata                InnerList.append(fdata)    OuterList.append(InnerList)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python