转换此类ndarray的最佳方式是什么:
[[1,2,3], [4,5,6]]
到:
[[[1],[2],[3]], [[4],[5],[6]]]
将每个值包装到数组
答案 0 :(得分:4)
你可以在最后引入一个np.newaxis/None
的新轴,如下所示 -
arr[...,None]
示例运行 -
In [6]: arr = np.array([[1,2,3], [4,5,6]])
In [7]: arr[...,None]
Out[7]:
array([[[1],
[2],
[3]],
[[4],
[5],
[6]]])
In [8]: arr[...,None].tolist() # To show it as a list for expected o/p format
Out[8]: [[[1], [2], [3]], [[4], [5], [6]]]
答案 1 :(得分:0)
您可以通过递归浏览列表列表来实现:
def wrap_values(list_of_lists):
if isinstance(list_of_lists, list):
return [wrap_values(el) for _,el in enumerate(list_of_lists)]
else:
return [list_of_lists]
xx = [[1,2,3], [4,5,6]]
yy = wrap_values(xx) # [[[1], [2], [3]], [[4], [5], [6]]]