我需要转换的数据如下所示:
array([(array(['test_00000001.jpg'], dtype='<U17'), array([[2694, 1211, 353, 353, 1, 9, 105, 144, 337, 2, 3,
2, 2, 1, -1, -1, -1, -1],
[1754, 1449, 68, 68, 3, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1]], dtype=int16)),
(array(['test_00000002.jpg'], dtype='<U17'), array([[113, 95, 226, 226, 1, 9, 71, 181, 221, 1, 3, 1, 2,
3, -1, -1, -1, -1]], dtype=int16)),
(array(['test_00000003.jpg'], dtype='<U17'), array([[352, 114, 151, 151, 1, 17, 45, 137, 135, 1, 3, 2, 2,
3, -1, -1, -1, -1],
[799, 217, 139, 139, 2, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1]], dtype=int16)),
...,
(array(['test_00004933.jpg'], dtype='<U17'), array([[ 80, 121, 245, 245, 1, 50, 81, 238, 242, 1, 3, 2, 2,
3, -1, -1, -1, -1]], dtype=int16)),
(array(['test_00004934.jpg'], dtype='<U17'), array([[148, 266, 276, 276, 1, 38, 68, 265, 248, 1, 3, 2, 2,
3, -1, -1, -1, -1]], dtype=int16)),
(array(['test_00004935.jpg'], dtype='<U17'), array([[110, 98, 318, 318, 1, 73, 124, 313, 302, 1, 3, 2, 2,
3, -1, -1, -1, -1]], dtype=int16))],
dtype=[('name', 'O'), ('label', 'O')])
有两列-名称和标签。 标签列是一个数组,数组数量可变(不超过20个)。 我的目标是拆分标签列,使每一行只包含原始标签字段中的一个子数组。 例如,如果标签列如下所示:
[[arr1], [arr2]]
[[arr3], [arr4], [arr5]]
结果应该是
[arr1]
[arr2]
[arr3]
[arr4]
[arr5]
从示例中重新创建阵列需要一些编辑,但我得到:
这是一个1d数组,有两个字段,每个字段都有对象数据类型。一个字段包含字符串数据类型的1d数组:
另一个包含数组:
检查其形状:
给定这些形状,我可以将它们与
vstack
组合成一个2d数组。这是变量first dimension唯一可能的结果:这些名称可以组合成一个字符串数组:
相关问题 更多 >
编程相关推荐