3

ポリゴン頂点のリストを返す関数を含むパッケージを使用しています ( と呼びましょう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.Polygonmatplotlib.collections.PolyCollection

しかし、両方ともPolygonPolyCollection頂点が 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関数はありますか?

4

1 に答える 1

2

使用できます

p0.view(('>f8', 2))

viewドキュメントhttp://wiki.scipy.org/Cookbook/Recarrayも参照してください

于 2013-10-31T11:07:01.153 に答える