假设我有一个包含类似元素的列表列表,例如
[['string', 'string', 'number', 'number', 'number'], ['string', 'string', 'number', 'number', 'number']]
我如何才能将数字转换为浮点数?谢谢你的帮助。
编辑:
所以我有一个csv文件,其数据格式为这种方式。我通过将行作为列表列表来提取数据。当我最终将数据打印为格式化表时,我希望将数字格式化为舍入浮点数。
答案 0 :(得分:1)
import numpy as np
f= [['1', '5', '8', '2', '7'], ['5', '8', '3', '7', '6']]
f=np.array(f,float)
输出
[[1,5,8,2,7][5,8,3,7,6]]
答案 1 :(得分:0)
您希望使用自定义函数遍历列表.dataset
object
def traverse(o, tree_types=(list, tuple)):
if isinstance(o, tree_types):
for value in o:
for subvalue in traverse(value, tree_types):
yield subvalue
else:
yield o
这将确保无论您的列表如何嵌套,您都可以迭代所有项目
f=[['string', 'string', '4', '5', '6'], ['string', 'string', '7', '8', '9']]
print(list(traverse(f)))
['string', 'string', '4', '5', '6', 'string', 'string', '7', '8', '9']
接下来,您将要使用像is_number这样的函数的列表推导
def is_number(s):
try:
float(s)
return float(s)
except ValueError:
return s
这将允许您浏览数组并仅将数字转换为实际数字
f=[is_number(x) for x in list(traverse(f))]
['string', 'string', 4.0, 5.0, 6.0, 'string', 'string', 7.0, 8.0, 9.0]
答案 2 :(得分:0)
假设所有元素都是string
。
a = ['a', '9.99']
[float(x) for x in a if not x.isalpha()]
# [9.99]
如果输入是嵌套列表,您可以先将其展平为this。