编辑重新排列的特定列

2024-06-28 20:49:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个FITS格式的表需要编辑。 这是Python中的数据示例:

data =
FITS_rec([(   0, -1, -1., -540., -1.93287335e-18, -0.14582774, -1., -26.5, 12.12002624, 4),
          (   1, -1, -1., -539., -2.19318337e-18, -0.16850733, -1., -26.5, 12.12002624, 4),
          (   2, -1, -1., -538., -2.18309714e-18, -0.16215905, -1., -26.5, 12.12002624, 4),
          ...,
          (1077, -2, -1.,  537.,  4.93990773e-18,  0.34313738, -1., -10. , 12.92693756, 5),
          (1078, -2, -1.,  538.,  3.57624176e-18,  0.25193304, -1., -10. , 12.92693756, 5),
          (1079, -2, -1.,  539.,  1.57228526e-18,  0.11302811, -1., -10. , 12.92693756, 5)],
         dtype=(numpy.record, [('ID', '>i4'), ('BIN_ID', '>i4'), ('X', '>f8'), ('Y', '>f8'), ('FLUX', '>f8'), ('SNR', '>f8'), ('XBIN', '>f8'), ('YBIN', '>f8'), ('SNRBIN', '>f8'), ('NSPAX', '>i4')]))

我想编辑每个数组的最后一列,以便它与NSPAX相关。 为了删除最后一列,我尝试了以下代码:

names = list(data.dtype.names)
new_names = names[:8]
b = a[new_names]

但是我在运行它时遇到了这个错误:IndexError: only integers, slices (':'), ellipsis ('...'), numpy.newaxis ('None') and integer or boolean arrays are valid indices

有人能帮我吗?此外,一旦我删除了该列,我如何添加另一列


Tags: 数据numpyid编辑示例newdatanames