ValueError при попытке создать объект Table в Astropy
Я пытаюсь построить объект таблицы из astropy.table
, сейчас я хочу добавить только один столбец, но я получаю ValueError
,
Кто-нибудь знает, что я делаю не так?
>>> br_data["mass"]
array([ 49.65092267, 269.50829639, 51.37768973, ..., 1168.74318299,
1144.96728692, 1116.72595158])
>>> len(br_data["mass"])
122911
>>> table = Table([br_data["mass"]], names=('mDM'), meta={'name': 'attempt'})
ERROR: ValueError: Arguments "names" and "dtype" must match number of columns [astropy.table.table]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/astropy/table/table.py", line 1114, in __init__
self._check_names_dtype(names, dtype, n_cols)
File "/usr/local/lib/python2.7/dist-packages/astropy/table/table.py", line 1207, in _check_names_dtype
.format(inp_str))
ValueError: Arguments "names" and "dtype" must match number of columns
>>>
>>> br_data["mass"].dtype
dtype('float64')
>>> br_data["mass"].shape
(122911,)
1 ответ
names
Аргумент должен быть набором именных строк длиной, равной количеству столбцов. Вы написали names=('mDM')
который в Python эквивалентен names='mDM'
(круглые скобки игнорируются).
Я думаю, что вы намеревались быть кортеж из одного элемента, который написан на Python ('mDM',)
(обратите внимание на запятую). Это сделано для предотвращения двусмысленности с круглыми скобками, используемыми для группировки выражений. Или вы можете просто использовать список: names=['mDM']
,