Как добавить массивы без окончательного массива, говорящего «массив»? - PullRequest
0 голосов
/ 06 мая 2020

Я добавляю многомерные массивы с помощью for-l oop описанным ниже способом. Однако результат не такой, как хотелось бы. Желаемый результат - один массив, состоящий из нескольких массивов 5D.

import numpy as np

series_1 = [
             [0. 0. 0. 0. 0.],
             [0. 0. 0. 0. 0.],
             [0. 0. 0. 0. 0.]]

series_2 = [
         [0.  1.  0.  0.  0. ],
         [0.  0.5 0.5 0.  0. ],
         [0.  1.  0.  0.  0. ],
         [0.  0.  1.  0.  0. ]]

series_3 = [
         [1.  0.  0.  0.  0. ],
         [0.5 0.  0.  0.  0. ],
         [1.  0.  0.  0.  0. ],
         [1.  0.  0.  0.  0. ],
         [0.  0.  0.  1.  0. ]]

phases = [1, 2, 3]
average_total = []
for phase in phases:
    if phase == 1:
        average_series_T = series_1
    elif phase == 2:
        average_series_T = series_2
    elif phase == 3:
        average_series_T = series_3

    # add each phase to the total sequence
    average_total.append(average_series_T)


print("average total:")
print(average_total)

Вывод:

[array([[0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.]]), array([[0. , 1. , 0. , 0. , 0. ],
       [0. , 0.5, 0.5, 0. , 0. ],
       [0. , 1. , 0. , 0. , 0. ],
       [0. , 0. , 1. , 0. , 0. ]]), array([[1. , 0. , 0. , 0. , 0. ],
       [0.5, 0. , 0. , 0. , 0. ],
       [1. , 0. , 0. , 0. , 0. ],
       [1. , 0. , 0. , 0. , 0. ],
       [0. , 0. , 0. , 1. , 0. ]])]

Однако я хочу, чтобы вывод был:

    [
    [0., 0., 0., 0., 0.],
    [0., 0., 0., 0., 0.],
    [0., 0., 0., 0., 0.], 
    [0. , 1. , 0. , 0. , 0. ],
    [0. , 0.5, 0.5, 0. , 0. ],
    [0. , 1. , 0. , 0. , 0. ],
    [0. , 0. , 1. , 0. , 0. ], 
    [1. , 0. , 0. , 0. , 0. ],
    [0.5, 0. , 0. , 0. , 0. ],
    [1. , 0. , 0. , 0. , 0. ],
    [1. , 0. , 0. , 0. , 0. ],
    [0. , 0. , 0. , 1. , 0. ],
]

Я хотел бы, чтобы результат был массивом 5D-массивов , однако Pandas DataFrame или что-то подобное также будет работать. Я в основном хочу объединить series_1 series_2 и series_3 в один объект с формой (x, 5), где x - количество 5D-массивов.

1 Ответ

0 голосов
/ 07 мая 2020

Это то, что вы хотите?

L_arrays=[serie_1]
L_arrays.append(serie_2)
L_arrays.append(serie_3)

result = []
for i in range(len(L_arrays)):
    for row in L_arrays[i]:
        result.append(row)

print(array(result))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...