一個簡單的數據篩選腳本

一個簡單的數據篩選腳本

前言:確實是個基於Python,很簡單的腳本。不過,正由於我沒有系統的學過Python,因此仍是花了我半天的時間。路過一些坑之後,決定寫這樣一篇博客記錄一下今天學到的一些知識點,以防忘記,另外還有一個問題我不知道有沒有辦法解決,有知道的但願不吝賜教。html

任務需求

一個模擬星系演化的程序跑完之後,留下了不少的數據,其中有個記錄黑洞活動狀況的數據。這個黑洞活動狀況基於光度有沒有超過愛丁頓光度的2%分爲cold model(有)和hot model(沒有),這兩種model對wind和輻射的能量輸出計算要用不一樣的公式因此最好把原始數據一分爲二,放到兩個單獨的數據文件中,方便後面進一步的處理。python

實現步驟

  1. 載入原始數據
  2. 循環比較每一行的愛丁頓光度
  3. 輸出到新的文件中

個人代碼

import numpy as np

data = np.loadtxt('zmp_usr',skiprows=1)
data_cold = np.zeros((1,5))
data_hot = np.zeros((1,5))

for i in range(0,390000):   #pay attention to the num
    if data[i,2] > 0.02:
        data_cold = np.append(data_cold,[data[i,:]],axis=0)
    else:
        data_hot = np.append(data_hot,[data[i,:]],axis=0)

data_cold = np.delete(data_cold, 0, axis=0)
data_hot = np.delete(data_hot, 0, axis=0)

np.savetxt('data_cold',data_cold)
np.savetxt('data_hot',data_hot)

說明

  1. 跳過第一行載入原始數據:np.loadtxt('zmp_usr',skiprows=1)
  2. 給新的數組一個初始值:data_cold = np.zeros((1,5)) #曾經試過np.expty(),但這個給出的是隨機數不是真的空的。用這個就元素都是0
  3. 在新數組後添加新的一行: data_cold = np.append(data_cold,[data[i,:]],axis=0) #axis=0表明的是添加行,=1表明添加列,=None表明接上去(會變成一維數組)
  4. 刪去第一行:data_cold = np.delete(data_cold, 0, axis=0) #就是刪去咱們給的初始值
  5. 輸出到txt文件:np.savetxt('data_cold',data_cold)
  6. 其實我一直在想有沒有逐行輸出到txtx文件的方式,能和np.savetxt()同樣簡單的
  7. 循環390,000次,由於打開數據看了看大概有390,000+行數據吧,不知道有沒有一種直接到頭的表達方式就像All這樣的,試過All不行,也沒看到文章寫。

一些參考

都是網上找資料的時候屯的,Python有沒有比較好的手冊,教材推薦呢……數組

分支語句:http://www.runoob.com/python/python-if-statement.htmlapp

刪除整行整列:https://www.jb51.net/article/139764.htm.net

保存數組到txt文件:https://blog.csdn.net/kaever/article/details/61420696code

逐行寫入數據(以爲挺麻煩的):https://www.cnblogs.com/zengcv/p/6872113.htmlhtm

另外一種輸出方法:http://www.cnblogs.com/shenckicc/p/7010948.htmlblog

numpy數組基本操做:https://www.jb51.net/article/136333.htm http://www.javashuo.com/article/p-wjzzfhjw-ne.htmlip

數組說明:https://blog.csdn.net/qzc70919700/article/details/72983513get

數組拼接方法:https://blog.csdn.net/zyl1042635242/article/details/43162031

numpy.append()裏的axis的用法詳解 :https://www.codingke.com/article/3205

相關文章
相關標籤/搜索