Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 尝试在Astropy中创建表对象时发生ValueError_Python_Astropy - Fatal编程技术网

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,)