python - 如何在numpy中展平对象数组?
问题描述
我有一个数组
np.array([[[ 1, 2], [ 3, -4]],[[-1, 0]]], dtype=object)
我想把它展平以获得类似的东西:
array([1,2,3,-4,-1,0], dtype=int32)
我尝试了Flatten numpy 数组,但它引发了一个值错误
需要明确的是,我的数组始终是一个对象数组,由多个 2D 和 1D 数组组成
解决方案
In [333]: arr = np.array([[[ 1, 2], [ 3, -4]],[[-1, 0]]], dtype=object)
In [334]: arr
Out[334]: array([list([[1, 2], [3, -4]]), list([[-1, 0]])], dtype=object)
In [335]: arr.shape
Out[335]: (2,)
In [336]: np.vstack(arr)
Out[336]:
array([[ 1, 2],
[ 3, -4],
[-1, 0]])
In [337]: np.vstack(arr).ravel()
Out[337]: array([ 1, 2, 3, -4, -1, 0])
推荐阅读
- bash - 在 shell 脚本中捕获“psql:无法连接到服务器:连接超时”错误
- c# - 如何将 VisualStudio 中的 C# 项目保存到单个 .cs 文件而不是整个项目文件夹中?
- laravel - 如何在 laravel 中为自定义存储创建临时 url?
- .net-core - 使用 .Net Core 在 Windows 服务中运行 Orleans 3 Silo 主机
- javascript - CEFSharp“未捕获的 ReferenceError:方法未定义\n@ about:blank:1:0”
- javascript - 每次单击时如何使动画发生?
- c# - 使用 UI 按钮在 Unity 3d 中放大和缩小功能
- python - Python 中的非最大值抑制给出了不好的结果:出了什么问题?
- javascript - 如何使用 mongoDB Node.js 驱动程序正确设置 Express 和 mongoDB?
- flutter - Flutter:从标签栏从一个标签切换到另一个标签,导致在两者之间构建标签