二进制.dat文件绘制列数组值

时间:2015-02-02 18:57:22

标签: python arrays numpy matplotlib

我使用以下方法将数组导入到我的IPython笔记本中:

SDSS_local_AGN = np.fromfile('/Users/iMacHome/Downloads/SDSS_local_AGN_Spectra.dat', dtype=float)

数组的格式为:

 SPECOBJID_1         RA          DEC           SUBCLASS ...
 299528159882143744  146.29988   -0.12001413   AGN      ...
 299532283050747904  146.32957   -0.30622363   AGN      ...

基本上每列都有一个标题,我现在需要绘制某些值。

作为一个例子,我想将RA与DEC联系起来......我将如何做到这一点?

也许:

axScatter.plot(SDSS_local_AGN[RA], SDSS_local_AGN[DEC])

1 个答案:

答案 0 :(得分:1)

答案有误,见评论

如果您想通过名称访问它们,您应该使用pandas而不是numpy。在numpy中,您需要按索引查找:

plt.scatter(SDSS_local_AGN[1], SDSS_local_AGN[2])

但在熊猫中,它将如此简单:

df = read_csv('myfile')
df.plot(kind='scatter', x='RA', y='DEC')

http://pandas.pydata.org/pandas-docs/version/0.15.0/visualization.html#scatter-plot

SDSS_local_AGN['RA']是pandas中的有效操作,但不在numpy中。

PS,因为您在Notebook中工作,所以pandas DataFrames很好地呈现为HTML表格,使它们更具可读性。