Как составить вывод каждой итерации цикла for? - PullRequest
0 голосов
/ 19 октября 2019

У меня есть два цикла 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 для суммирования результатов. Спасибо за любую помощь.

1 Ответ

1 голос
/ 19 октября 2019

Попробуйте определить список, состоящий из списков.

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)
...