我正在使用一个包含一个函数的包,该函数返回一个多边形顶点列表(我们称之为polylist
)。此列表的每个元素(具有数万个元素)具有以下结构
p0 = polylist[0] =
array([(137.487773, 65.338638),
(138.29366, 64.992167),
(140.625, 64.992167),
...,
(140.625, 65.402088),
dtype=[('ra', '>f8'), ('dec', '>f8')])
要在 中绘制元素polylist
,我想使用matplotlib.patches.Polygon
or matplotlib.collections.PolyCollection
。
但是两者都Polygon
需要PolyCollection
顶点是 shape 的 2d numpy 数组(N,2)
。所以我需要转换p0
成类似的东西
p0 =
array([[137.487773, 65.338638],
[138.29366, 64.992167],
[140.625, 64.992167],
...,
[140.625, 65.402088]])
如果我这样做,np.array(p0, dtype=float)
我只会得到p0['ra']
array([137.487773, 138.29366, 140.625, 140.625, ..., 140.009968])
我想到了办法
np.array((v['ra'], v['dec'])).T
或者
np.vstack((v['ra'], v['dec'])).T
有没有更好的方法或任何 numpy 函数来做到这一点?