Используйте массивы Numpy вместо списков Python для представления ваших данных и примените индекс выбора строки idx
перед созданием Table
.
>>> import numpy as np
>>> from astropy.table import Table
>>> c1x = np.array([11.7, 13.8, 19.2, 15.0])
>>> c2x = np.array([12.0, 13.6, 14.5])
>>> idx = np.array([0, 2])
>>> c1x[idx]
array([11.7, 19.2])
>>> c2x[idx]
array([12. , 14.5])
>>> table = Table()
>>> table['c1x'] = c1x[idx]
>>> table['c2x'] = c2x[idx]
>>> table
<Table length=2>
c1x c2x
float64 float64
------- -------
11.7 12.0
19.2 14.5
В таблице Astropy внутренне хранятся данные в виде массивов Numpy, поэтомуесли у вас уже есть две таблицы c1
и c2
, вы можете сделать это:
>>> c1 = Table()
>>> c1['x'] = [11.7, 13.8, 19.2, 15.0]
>>> c2 = Table()
>>> c2['x'] = [12.0, 13.6, 14.5]
>>> idx = [0, 2]
>>> t = Table()
>>> t['c1x'] = c1['x'][idx]
>>> t['c2x'] = c2['x'][idx]
>>> t
<Table length=2>
c1x c2x
float64 float64
------- -------
11.7 12.0
19.2 14.5
Существует множество различных способов создания таблиц, выбора из них строк и столбцов или объединения данных из двухтаблицы в новую таблицу.Например, в вашем случае вы можете применить idx
, чтобы выбрать соответствующие строки в каждой таблице c1
и c2
, а затем объединить две таблицы (которые теперь имеют одинаковое количество строк).См. Таблицы Астропии .