【问题标题】:Merging some array into single array/list in python在python中将一些数组合并到单个数组/列表中
【发布时间】:2018-05-02 10:08:36
【问题描述】:

如何转换这个数组(不同维度的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.])

【问题讨论】:

  • Numpy 有一些相关的堆叠功能。您可以在the docs 中了解它们

标签: python arrays python-3.x numpy


【解决方案1】:

一种方法是使用numpy.hstackravel 来展平各种尺寸。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 2020-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-02
    相关资源
    最近更新 更多