0

我有一个包含多个数据点的数据文件,我想按特定顺序绘制。这是示例数据文件:

cop   94.0528    313     441
cpr   225.172    726     747
ent   444.786    926     939
fsh   256.038    743     754
fsp   43.7764    340     356
pbp   343.708    825     834
rho   426.497    858     886
sca   342.431    427     872

我目前正在以我设置示例的方式将它们绘制在彼此下方。如何将我的 python 脚本中这些数据记录的顺序更改为指定的顺序?我已经尝试将它放入一个数组中。所以我会做

data=Numpy.genfromtxt(txt)
transformdata.append(2) # cpr to the first slot
transformdata.append(1) # cop to the second slot
outputarray.append(data[transformdata(1)]
outputarray.append(data[transformdata(2)]
pos = range(1,size(outputarray))
scatter(outputarray, pos)    

然而,这是混乱的,当然不是实现这一目标的最佳方式。我将如何使用 Numpy 或 Matplotlib 库来做到这一点?

4

1 回答 1

0

假设它transformdatandarray, like data,您可以使用索引技巧来获取数组的视图,而无需复制它。例如:

>>> x=np.array(zip("abcdef",range(5),np.random.rand(5)),dtype=[('',"|S1"),('',int),('',float)])
>>> print x
[('a', 0, 0.9818028495949546) ('b', 1, 0.08931155317859962)
 ('c', 2, 0.018796963462246796) ('d', 3, 0.275603618214155)
 ('e', 4, 0.6328806434997251)]
>>> y = x[[1,3,0,2,4]]
>>> print y
[('b', 1, 0.08931155317859962) ('d', 3, 0.275603618214155)
 ('a', 0, 0.9818028495949546) ('c', 2, 0.018796963462246796)
 ('e', 4, 0.6328806434997251)]

这里的关键是x[[1,3,0,2,4]],您在其中按您需要的顺序使用您想要的索引列表进行索引。

于 2012-08-20T10:46:53.383 回答