awk是生信人必須要掌握的命令列工具。為啥?因為它太強大了。我們舉乙個例子來說明。
假設我們有乙個1000萬行的檔案,大概長這樣:
怎麼求第四列的平均數呢?
python版本
我們可以用幾行python**解決,比如這樣:
r版本
用r來做計算也是很適合的,比如像這樣:
awk版本
awk用一行**就可以解決問題,像這樣(注意耗時):
至此,我們可以看出,awk**簡單,但是效能卻不差!在同樣的機器上處理同樣的檔案,awk的執行時間是python的一半左右,是r的大概十分之一。可以說,awk已經非常快了!
c版本
都說c快,讓我們看看到底有多快。**如下:
可以看出,c的版本也僅比awk的稍快一點點。但是,c的**複雜多了!由此,我們可以粗略比較出awk是乙個非常完美的文字處理工具!
如果有任何問題,歡迎交流!
處理陣列中的nan,用這一列的平均值去替換
在jupyter 裡面寫的 練習!處理陣列中的nan t np.arange 24 reshape 4 6 astype float print t 將陣列中的一部分替換成nant 1 3 np.nan print t 遍歷每一列,然後判斷每一列是否有nan for i in range t.sha...
awk命令獲取文字的某一行某一列
1 列印檔案的第一列 域 awk filename 2 列印檔案的前兩列 域 awk filename 3 列印完第一列,然後列印第二列 awk filename 4 列印文字檔案的總行數 awk end filename 5 列印文字第一行 awk nr 1 filename 6 列印文字第二行第...
使用awk命令獲取文字的某一行,某一列
1 列印檔案的第一列 域 awk filename 2 列印檔案的前兩列 域 awk filename 3 列印完第一列,然後列印第二列 awk filename 5 列印文字第一行 awk nr 1 filename 6 列印文字第二行第一列 sed n 2,1p filename awk pri...