我正在使用一个包含函数的包,该函数返回一个多边形顶点列表(让我们称之为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
或matplotlib.collections.PolyCollection
。
但Polygon
和PolyCollection
都需要顶点为形状(N,2)
的2d numpy数组。所以我需要将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功能呢?