python中如何用split函数进行数据类型转换
Admin 2022-12-20 群英技术资讯 532 次浏览
不知道大家有没有过需要从txt
文件中读取含有多行多列的数据的经历,当我们读入数据时,数据会以string
的形式被读入,然而如何进行数据类型转换就成了大的问题。
这里介绍一种最简单的方式和容易产生的错误使用方法。
我们使用如下代码读取文件,使用readlines()
一次性将所有数据全部读取。
with open(r"C:\Users\15025\Desktop\debug1.txt", "r") as f: all_data = f.readlines() print(all_data) # ['6.317438621610765E-05 6.123920173773844E-05 0.00010382572761752979\n', '0.00010819194873178063 8.848784016828921E-05 0.0002043378699454479\n', '9.79660835582763E-05 9.750829986943346E-05 0.00021506758227284687']
我们不难发现这时我们的所有数据都被读入了同一行,但是内部有三个单引号括起来的部分,与我们测试数据中的三行吻合。
我们也可以看到,我们需要将这些数据分成单独的string
,然后我们就可以使用例如float
关键字对这些数据进行类型转换。
我们看到数据之间是通过空格来分开的。我们第一时间想到我们应该使用.split(" ")
方法以空格将数据分开。
with open(r"C:\Users\15025\Desktop\debug1.txt", "r") as f: all_data = f.readlines() all_data = all_data[0].split(" ") print(all_data) # ['6.317438621610765E-05', '', '6.123920173773844E-05', '', '0.00010382572761752979\n']
首先我们需要选取第一行,使用all_data[0]
,然后再使用split(" ")
函数分开它们。
我们成功达到了目的,但是我们同时引入了""
空字符串项和末尾处\n
的隐患,很是棘手。
这么做我们就进入了误区。
with open(r"C:\Users\15025\Desktop\debug1.txt", "r") as f: all_data = f.readlines() all_data = all_data[0].split() print(all_data) # ['6.317438621610765E-05', '6.123920173773844E-05', '0.00010382572761752979']
我们使用split()
函数时不添加任何参数,这样就一次性去掉了""
空字符串项和末尾处\n
的隐患还同时分开了各个字符串。
如果需要输出多行的结果,我们可以预先定义一个数组,用来存放我们的数据,完整代码如下:(以后所有的多行多列数据均可以如此读入)
array2d = [] with open(r"C:\Users\15025\Desktop\debug1.txt", "r") as f: all_data = f.readlines() for i in range(len(all_data)): temp_list = [] for element in all_data[i].split(): temp_list.append(float(element)) array2d.append(temp_list) print(array2d) #[[6.31743862e-05, 6.12392017e-05, 0.000103825728], # [0.000108191949, 8.84878402e-05, 0.00020433787], # [9.79660836e-05, 9.75082999e-05, 0.000215067582]]
import numpy as np array = np.zeros((3, 3)) with open(r"C:\Users\15025\Desktop\debug1.txt", "r") as f: all_data = f.readlines() for i, line in enumerate(all_data): numbers = line.split() for j, element in enumerate(numbers): array[i, j] = float(element) print(array) # [[6.31743862e-05 6.12392017e-05 1.03825728e-04] # [1.08191949e-04 8.84878402e-05 2.04337870e-04] # [9.79660836e-05 9.75082999e-05 2.15067582e-04]]
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Pytorch dataloader在加载最后一个batch时卡死的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章主要带大家一起学习一下Selenium的元素的基本操作与鼠标键盘模拟事件的操作,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
pycharm中jupyter怎样安装使用?Jupyter也就是指Jupyter Notebook,是一个交互式笔记本,支持运行40多种编程语言,能够应用于数据清理和转换,数值模拟,统计建模,机器学习等。这篇文章主要分享在pycharm中,jupyter的使用。
这篇文章主要介绍了pytorch部署到jupyter中,在这里需要注意我再输入的时候出现了一些无法定位的提示,但是我的电脑没有影响使用jupyter,还是可以使用jupyter并且可以import torch,本文给大家讲解的非常详细,需要的朋友参考下吧
第一种,利用functools工具,调用reduce()函数求阶乘。||第二种,使用for循环来求阶乘。||第三种,直接定义一个阶乘函数func(),利用递归的方式来求阶乘即可。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008