Python 尝试在Astropy中创建表对象时发生ValueError
我正试图从Python 尝试在Astropy中创建表对象时发生ValueError,python,astropy,Python,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
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,)
>>br_数据[“质量”]
数组([49.65092269.50829639,51.37768973,…,1168.74318299,
1144.96728692, 1116.72595158])
>>>len(br_数据[“质量”])
122911
>>>table=table([br_data[“mass”]],names=('mDM'),meta={'name':'trust'})
错误:ValueError:参数“name”和“dtype”必须与列数[astropy.table.table]匹配
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/local/lib/python2.7/dist-packages/astropy/table/table.py”,第1114行,在__
self.\u检查\u名称\u数据类型(名称、数据类型、n列)
文件“/usr/local/lib/python2.7/dist-packages/astropy/table/table.py”,第1207行,输入检查名称
.格式(inp_str))
ValueError:参数“name”和“dtype”必须与列数匹配
>>>
>>>br_数据[“质量”]。数据类型
数据类型('float64')
>>>br_数据[“质量”]形状
(122911,)
参数name
应该是长度等于列数的名称字符串的集合。您编写了names=('mDM')
,它在Python中相当于names='mDM'
(括号被忽略)
我认为您想要的是一个单元素元组,它在Python中编写为('mDM',)
(注意逗号)。这是为了防止使用括号对表达式进行分组时出现歧义。或者你可以只使用一个列表:names=['mDM']
数据[“mass”]有什么作用?数据类型?数据类型('float64')和(122911,)