生成嵌套的Numpy数组

时间:2017-03-30 17:30:59

标签: arrays python-2.7 opencv numpy

我试图编写一个函数,将一个numpy数组作为输入:

a = [[0,0], [10,0], [10,10], [5,4]]

并返回一个numpy数组b,以便:

b = [[[0,0]], [[10,0]], [[10,10]], [[5,4]]]

由于某种原因,我发现这个令人惊讶的困难。

我这样做的原因是我有一些使用skimage生成的轮廓,我尝试使用opencv2来计算功能(区域,周边等...)但opencv功能只会将b形式的数组作为输入,而不是。

1 个答案:

答案 0 :(得分:2)

a是形状(4,2),b是(4,1,2)

a.reshape(4,1,2)
np.expanddims(a, 1)
a[:,None]

所有工作

In [503]: B
Out[503]: 
array([[[ 0,  0]],

       [[10,  0]],

       [[10, 10]],

       [[ 5,  4]]])
In [504]: B.tolist()
Out[504]: [[[0, 0]], [[10, 0]], [[10, 10]], [[5, 4]]]