Как создать новый массив из существующего или обратного порядка списков Python - PullRequest
0 голосов
/ 06 октября 2019

У меня есть 2 списка в массиве. Я хотел бы изменить порядок списка. список 2 становится списком 1, а список один становится списком 2. Я бы хотел получить некоторую помощь по их эффективному переключению. Спасибо

У меня есть следующий код в Python.

RestoredData_Array = np.dot(featuresT.reshape(2,2), FinalData1_Matrix.reshape(2,20))
RestoredData_Array

Фактические результаты:

array([[  2.3065    ,   9.21202097,   2.03334271,   8.12104732,
          1.02492108,   4.09347257,  -0.54700703,  -2.18471288,
          0.15896622,   0.63490144,  -0.51904295,  -2.07302602,
         -2.11190708,  -8.43482867,  -3.33826623, -13.33283264,
         -3.24268925, -12.95110399,  -3.39616989, -13.56409637],

       [ -9.93383348, -39.6751278 , -11.51169937, -45.9770284 ,
        -13.27291919, -53.01123343, -12.73236969, -50.85231155,
        -13.35424863, -53.33605825, -14.86736232, -59.37934246,
        -17.41605181, -69.55865355, -17.84717309, -71.28052577,
        -19.07951685, -76.20243193, -20.72810021, -82.78677378]])

Желаемые результаты:

array([[ -9.93383348, -39.6751278 , -11.51169937, -45.9770284 ,
        -13.27291919, -53.01123343, -12.73236969, -50.85231155,
        -13.35424863, -53.33605825, -14.86736232, -59.37934246,
        -17.41605181, -69.55865355, -17.84717309, -71.28052577,
        -19.07951685, -76.20243193, -20.72810021, -82.78677378]

        [  2.3065    ,   9.21202097,   2.03334271,   8.12104732,
          1.02492108,   4.09347257,  -0.54700703,  -2.18471288,
          0.15896622,   0.63490144,  -0.51904295,  -2.07302602,
         -2.11190708,  -8.43482867,  -3.33826623, -13.33283264,
         -3.24268925, -12.95110399,  -3.39616989, -13.56409637]])

Ответы [ 2 ]

0 голосов
/ 06 октября 2019

Похоже, все, что вам нужно, это изменить [a, b] на [b, a], где a и b - ваши списки.

Есть много способов. Приведенный ниже код является самым коротким и работает как со списками, так и с массивами numpy.

Reversed_Array = RestoredData_Array[::-1]

Это уловка срезов. См. здесь , чтобы понять, как это работает.

0 голосов
/ 06 октября 2019

Обмен значениями двух массивов:

a=[1]
b=[2]
a,b = b,a
print(a)
print(b)

Обмен значениями вложенного массива:

c=[[1],[2]] # here c[0] have value [1] & c[1] have value [2] 
c[0],c[1] = c[1],c[0] # here we are interchanging the value of c[0] & c[1]
print(c)

Эти примеры могут помочь вам преобразовать ваш массив

Для вашего кода это может работать:

RestoredData_Array = np.dot(featuresT.reshape(2,2), FinalData1_Matrix.reshape(2,20))
RestoredData_Array[0],RestoredData_Array[1] = RestoredData_Array[1],RestoredData_Array[0]
print(RestoredData_Array)
...