基于python批量處理dat文件及科學計算方法詳解
摘要:主要介紹一些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文件一般通過逗號分隔文本,數(shù)據(jù)處理起來較得心應手,可以直接改后綴得到xlsx文件,一般excel也可讀。
科學計算
matlab作為一門科學計算編程語言,在科學計算的應用實在廣泛,包括webread等強大的函數(shù)用起來十分順手,但matlab是商業(yè)軟件,并不免費。其實,python在科學計算效率或函數(shù)庫功能包括其繪圖功能、圖像處理都很強大,(相比matlab,python的調色板更出色)。以下列舉一些數(shù)據(jù)文件讀取,繪圖的一些基本操作作為參考。
數(shù)據(jù)提取及繪圖
#數(shù)據(jù)提取 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的科學計算功能與matlab及其相似,python有幾點不同在于
1.python有元組的數(shù)據(jù)類型,元組不同于列表,元組不可更改
2.python的數(shù)據(jù)檢索使用[]
總而言之,python的數(shù)據(jù)形式及其豐富。
numpy以及pandas是python用于數(shù)據(jù)處理的兩個庫,具體使用方法主要推薦python科學計算這本書。matplotlib用于繪圖,剛也說了,其調色板很厲害哦,圖像質量不錯。
預告:代碼運行環(huán)境均為jupyter notebook,簡直神器一般的存在,網(wǎng)上搭建的資料也太多。
以上這篇基于python批量處理dat文件及科學計算方法詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python?生成多行重復數(shù)據(jù)的方法實現(xiàn)
本文主要介紹了Python?生成多行重復數(shù)據(jù)的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-03-03Python 使用dict實現(xiàn)switch的操作
這篇文章主要介紹了Python 使用dict實現(xiàn)switch的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04Python JSON格式數(shù)據(jù)的提取和保存的實現(xiàn)
這篇文章主要介紹了Python JSON格式數(shù)據(jù)的提取和保存的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-03-03Python實現(xiàn)刪除文件中含“指定內容”的行示例
這篇文章主要介紹了Python實現(xiàn)刪除文件中含“指定內容”的行功能,涉及Python針對文件讀取及字符串遍歷、判斷等相關操作技巧,需要的朋友可以參考下2017-06-06