我使用了numpy和scipy,有些函数真正关心数组的维数,我有一个函数名CovexHull(point),它接受点作为二维数组。
hull = ConvexHull(points)
In [1]: points.ndim
Out[1]: 2
In [2]: points.shape
Out[2]: (10, 2)
In [3]: points
Out[3]:
array([[ 0. , 0. ],
[ 1. , 0.8],
[ 0.9, 0.8],
[ 0.9, 0.7],
[ 0.9, 0.6],
[ 0.8, 0.5],
[ 0.8, 0.5],
[ 0.7, 0.5],
[ 0.1, 0. ],
[ 0. , 0. ]])
正如你在上面看到的,这些点是一个带有ndim 2的numpy。
现在我有了两个不同的numpy数组(tp和fp),如下所示(例如fp)
In [4]: fp.ndim
Out[4]: 1
In [5]: fp.shape
Out[5]: (10,)
In [6]: fp
Out[6]:
array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.4,
0.5, 0.6, 0.9, 1. ])
我的问题是如何创建一个二维numpy数组,就像tp和fp的点一样有效
如果你想把两个10个元素的一维数组组合成一个二维数组
np.vstack((tp, fp)).T
就可以了。np.vstack((tp, fp))
将返回一个shape数组(2,10),而T
属性返回带有shape(10,2)的转置数组(即两个一维数组形成列而不是行)。你可以使用numpy的column_stack
相关问题 更多 >
编程相关推荐