Python:如何将Numpy数组项值类型转换为具有此值的数组?

时间:2016-09-29 08:09:03

标签: python arrays numpy

转换此类ndarray的最佳方式是什么:

[[1,2,3], [4,5,6]]

到:

[[[1],[2],[3]], [[4],[5],[6]]]

将每个值包装到数组

2 个答案:

答案 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]]]