Объединение некоторого массива в один массив / список в Python - PullRequest
0 голосов
/ 02 мая 2018

Как преобразовать этот массив (разные размеры numpy),

l= (array([0.08]), array([[ 0.56, -0.01, 0.46]), array([[ 0.60], [0.07], [0.03]]), array([[0., 0., 0., 0.]]), array([[0.]]))

в одномерный массив,

l= array([0.08, 0.56, -0.01, 0.60, 0.07, 0.03, 0., 0., 0., 0., 0.])

1 Ответ

0 голосов
/ 02 мая 2018

Одним из способов является использование numpy.hstack с ravel для выравнивания различных размеров.

import numpy as np

l = (np.array([0.08]), np.array([ 0.56, -0.01, 0.46]),
     np.array([[ 0.60], [0.07], [0.03]]), np.array([[0., 0., 0., 0.]]),
     np.array([[0.]]))

res = np.hstack(i.ravel() for i in l)

array([ 0.08,  0.56, -0.01,  0.46,  0.6 ,  0.07,  0.03,  0.  ,  0.  ,
        0.  ,  0.  ,  0.  ])

Или, если вы хотите функциональный подход:

from operator import methodcaller

res = np.hstack(list(map(methodcaller('ravel'), l)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...