我有一个数组数组,类似这样的东西:
array([[array([33120, 28985, 9327, 45918, 30035, 17794, 40141, 1819, 43668],
dtype=int64)],
[array([33754, 24838, 17704, 21903, 17668, 46667, 17461, 32665],
dtype=int64)],
[array([46842, 26434, 39758, 27761, 10054, 21351, 22598, 34862, 40285,
17616, 25146, 32645, 41276], dtype=int64)],
...,
[array([24534, 8230, 14267, 9352, 3543, 29397, 900, 32398, 34262,
37646, 11930, 37173], dtype=int64)],
[array([25157], dtype=int64)],
[array([ 8859, 20850, 19322, 8075], dtype=int64)]], dtype=object)
我想要的是
array([33120, 28985, 9327, 45918, 30035, 17794, 40141, 1819, 43668,33754, 24838, 17704, 21903, 17668, 46667, 17461, 32665,46842, 26434, 39758, 27761, 10054, 21351, 22598, 34862, 40285,17616, 25146, 32645, 41276
...,
24534, 8230, 14267, 9352, 3543, 29397, 900, 32398, 34262,
37646, 11930, 37173,25157 8859, 20850, 19322, 8075, dtype=object)
我为此搜索了一些解决方案,但似乎所有这些都适用于 np.array 或列表,不适用于数组。
functools.reduce(operator.iconcat, orders2.values.tolist(), [])
[array([33120, 28985, 9327, 45918, 30035, 17794, 40141, 1819, 43668],
dtype=int64),
array([33754, 24838, 17704, 21903, 17668, 46667, 17461, 32665],
dtype=int64),
array([46842, 26434, 39758, 27761, 10054, 21351, 22598, 34862, 40285,
17616, 25146, 32645, 41276], dtype=int64),...
orders2.values.flatten()
array([array([33120, 28985, 9327, 45918, 30035, 17794, 40141, 1819, 43668],
dtype=int64),
array([33754, 24838, 17704, 21903, 17668, 46667, 17461, 32665],
dtype=int64),
我什至无法将数组转换为列表
[sub.tolist() for sub in orders2.values]
[array([33120, 28985, 9327, 45918, 30035, 17794, 40141, 1819, 43668],
dtype=int64),
array([33754, 24838, 17704, 21903, 17668, 46667, 17461, 32665],
dtype=int64),
array([46842, 26434, 39758, 27761, 10054, 21351, 22598, 34862, 40285,
17616, 25146, 32645, 41276], dtype=int64),...
orders2.values.flatten()
array([array([33120, 28985, 9327, 45918, 30035, 17794, 40141, 1819, 43668],
dtype=int64),
array([33754, 24838, 17704, 21903, 17668, 46667, 17461, 32665],
dtype=int64),...
我发现很难获得有关数组类的一些信息,一切都是列表或 np.array
请您参考如下方法:
使用列表理解,然后转换回数组:
>>> arr = array([[array([33120, 28985, 9327, 45918, 30035, 17794, 40141, 1819, 43668],
dtype='int64')],
[array([33754, 24838, 17704, 21903, 17668, 46667, 17461, 32665],
dtype='int64')],
[array([46842, 26434, 39758, 27761, 10054, 21351, 22598, 34862, 40285,
17616, 25146, 32645, 41276], dtype='int64')],
[array([24534, 8230, 14267, 9352, 3543, 29397, 900, 32398, 34262,
37646, 11930, 37173], dtype='int64')],
[array([25157], dtype='int64')],
[array([ 8859, 20850, 19322, 8075], dtype='int64')]], dtype=object)
>>> array([x for i in arr.tolist() for x in i[0].tolist()])
array([33120, 28985, 9327, 45918, 30035, 17794, 40141, 1819, 43668,
33754, 24838, 17704, 21903, 17668, 46667, 17461, 32665, 46842,
26434, 39758, 27761, 10054, 21351, 22598, 34862, 40285, 17616,
25146, 32645, 41276, 24534, 8230, 14267, 9352, 3543, 29397,
900, 32398, 34262, 37646, 11930, 37173, 25157, 8859, 20850,
19322, 8075])
>>>
