我正在尝试编写一个函数,它将采用以下形式的 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 作为输入的形式,而不是 a。
最佳答案
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]]]
关于arrays - 生成嵌套的 Numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43124668/