0

我有一个带有字段/列'observation_id'的 astropy 表input_table,其中包含81-126之类的对象。我希望将这两个数字(81 和 126)分开并将它们保存为整数。我在这里编写所有步骤以显示我在每个步骤中拥有的对象类型。如果有不清楚的地方,请告诉我。

In [62]: id=input_table['observation_id']

In [63]: str=id[0]

In [64]: print(str)
81-126

In [65]: print(type(str))
<class 'numpy.str_'>

In [66]: nx,ny=str.split("-")

In [67]: print(nx,ny)
81 126

In [68]: print(type(nx),type(ny))
<class 'str'> <class 'str'>

当我执行以下操作将字符串转换为整数时,

In [70]: int(float(nx))

我得到:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-70-7cfc33470a5c> in <module>()
----> 1 int(float(nx))

ValueError: could not convert string to float: '8\x00\x00\x001\x00\x00\x00'

查看字符串类型的链接'8\x00\x00\x001\x00\x00\x00'

我试过了

In [71]: nx,ny=str.decode(encode='utf-16-le').split('-')

但我明白了

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-71-5f8d49af6ed1> in <module>()
----> 1 nx,ny=str.decode(encode='utf-16-le').split('-')

AttributeError: 'numpy.str_' object has no attribute 'decode'

我不知道如何进一步进行。有人可以帮忙吗?

4

1 回答 1

0

我无法使用 numpy 1.7 在 Python 2.7 或 3.3 中重现您的示例。你能提供更多关于版本和平台的细节吗?

一点是您正在使用str作为重载内置str类型的变量。我不认为这在这里直接是一个问题,但总的来说这肯定不是一个好主意。

于 2014-04-09T19:03:06.613 回答