【发布时间】:2015-07-30 10:16:25
【问题描述】:
我有一个可以接受列表或 numpy 数组的函数。
在任何一种情况下,列表/数组都只有一个元素(总是)。我只需要返回一个浮点数。
所以,例如,我可以收到:
list_ = [4]
或 numpy 数组:
array_ = array([4])
我应该回来
4.0
所以,很自然(我会说),我在 list_ 上使用 float(...) 并得到:
TypeError: float() argument must be a string or a number
我对array_ 做同样的事情,这次它通过响应“4.0”来工作。由此,我了解到Python的列表不能以这种方式转换为float。
基于成功将 numpy 数组转换为浮点数,这导致我采用这种方法:
float(np.asarray(list_))
当 list_ 既是 Python 列表又是 numpy 数组时,此方法有效。
问题
但这种方法似乎有一个开销,首先将列表转换为 numpy 数组,然后再转换为浮点数。基本上:有更好的方法吗?
【问题讨论】:
-
你不能使用切片吗:float(list_[0]) = 4.0
-
float(list_[0])或float(''.join(list_))
标签: python arrays list numpy floating-point