【发布时间】:2018-02-28 15:20:37
【问题描述】:
这似乎是一个足够简单的任务,但我还没有找到如何使用numpy 来完成它。考虑示例数组:
import numpy as np
aa = np.array([np.array([13.16]), np.array([1.58 , 1.2]), np.array([13.1]), np.array([1. , 2.6])], dtype=object)
我需要一种通用方法将该数组扁平化为一个由N 元素组成的数组,并使用N=every float in all the sub-arrays。在这种情况下,它将是:
aa = np.array([13.16, 1.58 , 1.2, 13.1, 1. , 2.6])
我已经尝试过np.ndarray.flatten()(尝试了所有“订单”选项))但我得到了相同的未更改的aa 数组。
为什么np.ndarray.flatten() 不起作用,我该如何完成?
解决方案应该尽可能通用,因为我在这里使用的示例 aa 数组实际上会在我的真实代码中填充不同长度的子数组。
【问题讨论】:
-
aa已经是 1d。flatten仅更改shape。它不会跨此对象 dtype 屏障运行。concatenate将数组视为数组列表;这是一个非常不同的操作。