我有一个可以接受列表或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数组,然后再进行浮动。基本上:有更好的方法吗?
只需使用索引访问和索引0访问列表/数组的第一项即可:
>>> list_ = [4]
>>> list_[0]
4
>>> array_ = np.array([4])
>>> array_[0]
4
这将是一个,int
因为那是您首先插入的内容。如果出于某种原因需要将其作为浮动对象,则可以调用float()
它:
>>> float(list_[0])
4.0
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句