基于python批量处理dat文件及科学计算方法详解


Posted in Python onMay 08, 2018

摘要:主要介绍一些python的文件读取功能,文件内容修改,文件名后缀更改等操作。

批处理文件功能

import os
path1 = 'C:\\Users\\awake_ljw\\Documents\\python for data analysis\\test1'
path2 = 'C:\\Users\\awake_ljw\\Documents\\python for data analysis\\test2'
filelist = os.listdir(path1)
for files in filelist:
 Olddir = os.path.join(path1,files)
 filename = os.path.splitext(files)[0]
 filetype = os.path.splitext(files)[1]
 print Olddir
 file_test = open(Olddir,'r')
 Newdir = os.path.join(path2,str(filename)+'.csv')
 print Newdir
 file_test2 = open(Newdir,'w')
 for lines in file_test.readlines():
 strdata = ",".join(lines.split('\t'))
 file_test2.write(strdata)
 file_test.close()
 file_test2.close()

os模块是python最基础的模块之一,一般用于文件处理等操作。上面这段代码主要就是将dat文件转化为csv文件,同时保证csv可读。一般txt文件不能通过直接改后缀改变呈csv文件格式,一般会造成文件不可读。csv文件一般通过逗号分隔文本,数据处理起来较得心应手,可以直接改后缀得到xlsx文件,一般excel也可读。

科学计算

matlab作为一门科学计算编程语言,在科学计算的应用实在广泛,包括webread等强大的函数用起来十分顺手,但matlab是商业软件,并不免费。其实,python在科学计算效率或函数库功能包括其绘图功能、图像处理都很强大,(相比matlab,python的调色板更出色)。以下列举一些数据文件读取,绘图的一些基本操作作为参考。

数据提取及绘图

#数据提取
import os 
import pandas as pd
import numpy as np
number = -1;
sudu=np.zeros(5247*5,dtype=float).reshape(5247,5)
for files in filelist1:
 number +=1
 data = pd.read_csv(str(number+1)+'a.csv')
 sudu[:,number]=data['velocity']
 x = data['x']
 y = data['y']
a = sudu[0:5184,0].reshape(81,64)
%matplotlib inline
import matplotlib.pyplot as plt
extent = [np.min(x),np.max(x),np.min(y),np.max(y)]
plt.subplot(231)
u0 = sudu[0:5184,0].reshape(81,64)
plt.imshow(u0,extent=extent,origin='lower')
plt.subplot(232)
u1 = sudu[0:5184,1].reshape(81,64)
plt.imshow(u1,extent=extent,origin='lower')
plt.subplot(233)
u2 = sudu[0:5184,2].reshape(81,64)
plt.imshow(u2,extent=extent,origin='lower')
plt.subplot(234)
u3 = sudu[0:5184,3].reshape(81,64)
plt.imshow(u3,extent=extent,origin='lower')
#plt.axis("equal")
plt.subplot(235)
u4 = sudu[0:5184,4].reshape(81,64)
plt.imshow(u4,extent=extent,origin='lower')
plt.subplot(236)
u5 = sudu[0:5184,4].reshape(81,64)
plt.imshow(u5,extent=extent,origin='lower')
#contour
cs = plt.contour(u5, 20,extent = extent)
plt.xlim(-0.8,0.8)
plt.ylim(0.6,2.2)
plt.axis('equal')

基于python批量处理dat文件及科学计算方法详解

基于python批量处理dat文件及科学计算方法详解

python的科学计算功能与matlab及其相似,python有几点不同在于

1.python有元组的数据类型,元组不同于列表,元组不可更改

2.python的数据检索使用[]

总而言之,python的数据形式及其丰富。

numpy以及pandas是python用于数据处理的两个库,具体使用方法主要推荐python科学计算这本书。matplotlib用于绘图,刚也说了,其调色板很厉害哦,图像质量不错。

预告:代码运行环境均为jupyter notebook,简直神器一般的存在,网上搭建的资料也太多。

以上这篇基于python批量处理dat文件及科学计算方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python调用windows api锁定计算机示例
Apr 17 Python
Python中str.join()简单用法示例
Mar 20 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
Apr 02 Python
Python实现朴素贝叶斯分类器的方法详解
Jul 04 Python
python实现二维数组的对角线遍历
Mar 02 Python
Python中print和return的作用及区别解析
May 05 Python
python字典的常用方法总结
Jul 31 Python
关于pycharm中pip版本10.0无法使用的解决办法
Oct 10 Python
详解pandas中iloc, loc和ix的区别和联系
Mar 09 Python
django实现HttpResponse返回json数据为中文
Mar 27 Python
python scipy 稀疏矩阵的使用说明
May 26 Python
Python编写nmap扫描工具
Jul 21 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
May 08 #Python
Ubuntu下使用python读取doc和docx文档的内容方法
May 08 #Python
儿童编程python入门
May 08 #Python
解决python大批量读写.doc文件的问题
May 08 #Python
python在每个字符后添加空格的实例
May 07 #Python
Pycharm在创建py文件时,自动添加文件头注释的实例
May 07 #Python
python 读取DICOM头文件的实例
May 07 #Python
You might like
php中的PHP_EOL换行符详细解析
2013/10/26 PHP
php教程之魔术方法的使用示例(php魔术函数)
2014/02/12 PHP
PHP开发微信支付的代码分享
2014/05/25 PHP
学习php中的正则表达式
2014/08/17 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
2015/03/10 PHP
JS实现self的resend
2010/07/22 Javascript
javascript中万恶的function实例分析
2011/05/25 Javascript
这段js代码得节约你多少时间
2011/12/20 Javascript
jquery表单验证框架提供的身份证验证方法(示例代码)
2013/12/27 Javascript
Jquery validation remote 验证的缓存问题解决方法
2014/03/25 Javascript
jQuery技巧之让任何组件都支持类似DOM的事件管理
2016/04/05 Javascript
JS图片定时翻滚效果实现方法
2016/06/21 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
详解Angular.js中$http拦截器的介绍及使用
2017/07/04 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
2018/09/16 Javascript
React+Antd+Redux实现待办事件的方法
2019/03/14 Javascript
js prototype和__proto__的关系是什么
2019/08/23 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
2020/05/01 Javascript
[01:03:41]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第三场 2月2日
2021/03/11 DOTA
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
2019/05/07 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
Django+Uwsgi+Nginx如何实现生产环境部署
2020/07/31 Python
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
华三通信H3C面试题
2015/05/15 面试题
2014年煤矿工人工作总结
2014/12/08 职场文书
人工作失职检讨书
2015/05/05 职场文书
运动会开幕式新闻稿
2015/07/17 职场文书
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis
PHP获取学生成绩的方法
2021/11/17 PHP
Android开发 使用文件储存的方式保存QQ密码
2022/04/24 Java/Android
如何使用python包中的sched事件调度器
2022/04/30 Python
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL