Многомерный список в обычный

Есть многомерный список:

[array([[309.54673127],
        [309.54731989],
        [309.54790851],
        ...,
        [338.97611443],
        [338.97670305],
        [338.97729168]]),
 array([[291.43137723],
        [291.43269454],
        [291.43401186],
        ...,
        [357.29307209],
        [357.2943894 ],
        [357.29570671]]),
 array([[353.57357309],
        [353.5769884 ],
        [353.58040371],

Как его превратить просто в list? list = [309.54673127, 309.54731989, 309.54790851 ... 291.43137723, 291.43269454, 291.43401186 ...]


Ответы (1 шт):

Автор решения: MaxU

сделайте вместо:

res = []
for ... :
    res.append(func(...))

так:

res = np.concatenate([np.ravel(func(...)) for ...])

UPD: упрощенный вариант:

final = np.array([])
for ...:
    temp = ...
    final = np.concatenate([final, np.ravel(temp)])

Пояснение:

  • np.ravel() - превращает N-размерную матрицу в одномерный вектор.
  • np.concatenate() - объединяет несколько Numpу объектов в один.

В итоге получаем одномерный вектор результатов. Если нужно получить Vanilla Python список, то можно воспользоваться методом res.tolist()

→ Ссылка